Javascript 使用ajax仅以文件形式发送
我有一个带有10个输入文件类型标记的表单。我只想用ajax将其中一个文件发送到服务器。在支持formData的现代浏览器中没有问题。我的问题是在不支持formData的旧浏览器中。我将此代码用于旧浏览器。 html表单Javascript 使用ajax仅以文件形式发送,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个带有10个输入文件类型标记的表单。我只想用ajax将其中一个文件发送到服务器。在支持formData的现代浏览器中没有问题。我的问题是在不支持formData的旧浏览器中。我将此代码用于旧浏览器。 html表单 <form name="multiform" id="multiform" action="multi-form-submit.php" method="POST" enctype="multipart/form-data"> Image1 :<input ty
<form name="multiform" id="multiform" action="multi-form-submit.php" method="POST" enctype="multipart/form-data">
Image1 :<input type="file" name="photo1" /><br/>
图1:
图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);
});
函数getDoc(框架){
var doc=null;
//IE8级联访问检查
试一试{
if(frame.contentWindow){
doc=frame.contentWindow.document;
}
}捕捉(错误){
}
if(doc){//成功获取内容
退货单;
}
试试{//简单地检查一下可能会在ssl或不匹配的协议下抛出ie8
doc=frame.contentDocument?frame.contentDocument:frame.document;
}捕捉(错误){
//最后一次尝试
doc=frame.document;
}
退货单;
}
$(“#多种形式”)。提交(功能(e)
{
var formObj=$(此项);
//var formURL=formObj.attr(“操作”);
var formURL=“multi-form submit.php”;
var iframeId=“unique”+(new Date().getTime());
//创建一个空的iframe
变量iframe=$('');
//藏起来
iframe.hide();
//将表单目标设置为iframe
formObj.attr(“目标”,iframeId);
//将iframe添加到主体
iframe.附件(“正文”);
iframe.load(函数(e)
{
var doc=getDoc(iframe[0]);
var docRoot=doc.body?doc.body:doc.documentElement;
var data=docRoot.innerHTML;
警报(数据);
});
multi-form-submit.php文件:
<?php
move_uploaded_file($_FILES["photo"]["tmp_name"],
"upload/" . $_FILES["photo"]["name"]);
?>
当用户选择photo1、photo2和photo3并单击提交时,我只想将photo2发送到服务器。如何执行此操作?对于旧浏览器,当表单包含中文、日语