我有2个输入字段和一个字段来上传文件。我正在尝试使用AJAX发布表单,序列化表单数据。但问题是我将$ _FILES清空。
这是我的代码:
form name="dataform" id="dataform" enctype="multipart/form-data"
<input name="url" class="inputForm" id="url" />
<input type="file" id="image" name="image" class="inputForm" />
$.ajax({
type: "POST",
url: "test.php",
data: datastring,
success: function(resultdata){
}
});
&GT;
答案 0 :(得分:0)
问题是jQuery会将文件数组转换为字符串,而服务器无法将其取出。
但不要担心,总会有另一种解决方案,
你可以参考这个插件来使用ajax上传图片,
http://www.sanwebe.com/2012/05/ajax-image-upload-and-resize-with-jquery-and-php
非常简单,你只需要使用ajax提交表单,然后在php文件中执行上传操作,然后返回到ajax函数,而不重定向另一个页面。
答案 1 :(得分:0)
根据我所知道你不能通过使用ajax上传文件(任何东西)(没有支持,你可以使用插件,iframe等)
我来自java背景我不关心PHP,但我相信你可以通过使用iframe实现这一目标,
或
我将举例说明你怎么做(我在我的项目中做了同样的事我粘贴)
<form action="${pageContext.request.contextPath}/catalogue/importReportaccon.action" method="post" enctype="multipart/form-data" target="upload_target" id="report_result" >
<input name="fileData" type="file" id="uploadAccessionNo" class="hidden_import"/>
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
<a type="button" class="right button left" onclick="displayFileBrowseButton();" id="datasheet_import" title="Import" style="margin-left: -10px;">Import <span class="icon icon7"></a>
</form>
脚本
function displayFileBrowseButton(){
$("#uploadAccessionNo").click();
}
$(document).ready(function() {
document.getElementById("uploadAccessionNo").onchange = function() {
document.getElementById("report_result").submit();
}
});
如果您不明白,请通过您的评论告诉我