我有一个简单的表格:
<form enctype="multipart/form-data" id="imageupload">
<input name="files" type="file" />
<input type="button" value="Upload" />
</form>
现在我想用ajax请求发送所有文件。
此示例有效,但它有一个错误。在我保存的文件中,还有其他信息:
-----------------------------169443243924626
Content-Disposition: form-data; name="files"; filename="shelby.png"
Content-Type: image/png
$.ajax({
url: 'imageupload.php', //server script to process data
type: 'POST',
xhr: function() { // custom xhr
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
}
return myXhr;
},
//Ajax events
//beforeSend: beforeSendHandler,
//success: completeHandler,
//error: errorHandler,
// Form data
data: new FormData($('#imageupload')[0]),
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: 'multipart/form-data',
processData: false
});
现在我开始说:
$('#imageupload')[0].files.files[0]
我可以。我得到这个名字。但是如何获取原始文件数据?
答案 0 :(得分:2)
try this
$filename = $_FILES['ur_image']['name'] ;
$filesize = $_FILES['ur_image']['size'];
$erro = $_FILES['ur_image']['error']; //checks UPLOAD_ERR_OK
$tmpname = $_FILES['ur_image']['tmp_name'];
$dest = ROOT_DIR.'/upload/logo/';
答案 1 :(得分:1)
原始文件数据不可用,在HTML 5之前,javascript API阻止访问文件系统上的文件。
现在,在现代浏览器中,您可以使用javascript file API。
答案 2 :(得分:0)
可以通过HTML 5的文件apis(如上所述)来完成,但它仍然非常困难。这是作为非官方标准完成的方式是将表单的结果发布到隐藏的iframe中,并通过javascript提交表单。当post在iframe中加载时,你包含调用父窗口上定义的回调函数的标记,例如window.parent.doSomething();
是的,这是非常愚蠢的,但这实际上是如何完成的。