【发布时间】:2014-02-02 09:24:09
【问题描述】:
我有一个带有 10 个输入文件类型标记的表单。我只想将其中一个文件发送到带有 ajax 的服务器。在支持 formData 的现代浏览器中没有问题。我的问题是在不支持 formData 的旧浏览器中。我将此代码用于旧浏览器。 html表单
<form name="multiform" id="multiform" action="multi-form-submit.php" method="POST" enctype="multipart/form-data">
Image1 :<input type="file" name="photo1" /><br/>
图片2:
图 3:
javascript 代码
function getDoc(frame) {
var doc = null;
// IE8 cascading access check
try {
if (frame.contentWindow) {
doc = frame.contentWindow.document;
}
} catch(err) {
}
if (doc) { // successful getting content
return doc;
}
try { // simply checking may throw in ie8 under ssl or mismatched protocol
doc = frame.contentDocument ? frame.contentDocument : frame.document;
} catch(err) {
// last attempt
doc = frame.document;
}
return doc;
}
$("#multiform").submit(function(e)
{
var formObj = $(this);
//var formURL = formObj.attr("action");
var formURL="multi-form-submit.php";
var iframeId = "unique" + (new Date().getTime());
//create an empty iframe
var iframe = $('<iframe src="javascript:false;" name="'+iframeId+'" />');
//hide it
iframe.hide();
//set form target to iframe
formObj.attr("target",iframeId);
//Add iframe to body
iframe.appendTo("body");
iframe.load(function(e)
{
var doc = getDoc(iframe[0]);
var docRoot = doc.body ? doc.body : doc.documentElement;
var data = docRoot.innerHTML;
alert(data);
});
multi-form-submit.php 文件:
<?php
move_uploaded_file($_FILES["photo"]["tmp_name"],
"upload/" . $_FILES["photo"]["name"]);
?>
当用户选择 photo1 和 photo2 和 photo3 并单击提交时,我只想将 photo2 发送到服务器。我该怎么做?
【问题讨论】:
标签: javascript jquery html ajax