Lan*_*lot 3 php jquery file-upload twitter-bootstrap twitter-bootstrap-3
我正在实现Jasny File Input插件.但是,我无法将其上传到服务器.
HTML
<form method="post" id="formCreateMod" class="form form-horizontal" enctype="multipart/form-data" role="form">
<div class="fileinput fileinput-new" data-provides="fileinput">
<div class="fileinput-preview thumbnail" data-trigger="fileinput"></div>
<div>
<span class="btn btn-default btn-file"><span class="fileinput-new">Select image</span><span class="fileinput-exists">Change</span><input type="file" name="img"></span>
<a href="#" class="btn btn-default fileinput-exists" data-dismiss="fileinput">Delete</a>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
上面的代码段位于<form>代码中.然后我在jQuery中使用post将表单的序列化数据发送到服务器.
我希望通过使用$_FILES['img']["name"]或获取php中的内容$_FILES['img']["type"],但结果是NULL.
那么在图像发布后我应该如何在php中检索图像数据?
任何帮助将不胜感激!
更新
以下是我在jQuery中发布表单的方法.
var theForm = $('form');
$.post(location.href, theForm.serialize(), function(data) {
// handle return data
});
Run Code Online (Sandbox Code Playgroud)
您不能使用ajax和表单序列化发布文件.
但是,您仍然有解决方案:
enctype='multipart/form-data'表单上的属性提交表单<form [...] enctype='multipart/form-data'></form>
Run Code Online (Sandbox Code Playgroud)
var formData = new FormData();
// HTML file input user's choice...
formData.append("userfile", fileInputElement.files[0]);
var request = new XMLHttpRequest();
request.open("POST", "http://foo.com/submitform.php");
request.send(formData);
Run Code Online (Sandbox Code Playgroud)
var reader = new FileReader();
reader.onload = function(e) {
var rawData = reader.result;
}
reader.readAsBinaryString(file);
Run Code Online (Sandbox Code Playgroud)