【发布时间】:2013-12-04 12:30:56
【问题描述】:
我希望使用 jQuery 和 FormData 通过 ajax 将图像上传到服务器。
我的jQuery代码如下
var formData = new FormData("form")[0];
var fileName = $("#InputLogo")[0].files[0].name;
$.ajax ( {
url : 'upload.php',
type : 'POST',
data : { "data" : formData, "fileName" : fileName },
processData : false,
success : function(data) {
console.log(data);
alert(data);
}
});
当用户选择要上传的新文件时调用此代码。
我的服务器后端是 PHP,它按如下方式处理请求
$data = $_POST['data'];
$fileName = $_POST['fileName'];
$fp = fopen('/img/'.$fileName, 'w');
fwrite($fp, $data);
fclose($fp);
$returnData = array("data" => $data);
print_r($_POST);
POST 请求确实发生了,但 $_POST 仍然为空。
我尝试搜索解决方案,但找不到确切的解决方案。
任何建议将不胜感激。
编辑:这是 HTML 格式的表单
<form id=card-form" method="post" action="" >
<div class="form-group">
<label for="InputName">Name of the Company</label>
<input type="text" class="form-control" id="InputName" placeholder="Enter a name">
</div>
<div class="form-group">
<label for="InputEmail">Email</label>
<input type="email" class="form-control" id="InputEmail" placeholder="Enter email">
</div>
<div class="form-group">
<label for="InputLogo">Choose a company logo</label>
<input type="file" id="InputLogo" accept="image/*">
<p class="help-block">For good visibility, please limit the image to 200 x 200 px</p>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
【问题讨论】:
-
您能否也发布表单的 HTML 以确保那里的所有内容都正确无误。
-
您想在 jQuery 文档中查找
processData选项的作用…… -
@AgnosticDev 我添加了 HTML 表单
-
@CBroe 我在创建表单时参考this。我认为
processData不是问题。
标签: javascript php jquery ajax form-data