我正在尝试使用AJAX发送图像文件和其他文本信息,但是我无法让文件部分工作,因为我不太明白该怎么做。
这是Javascript:
//The user selects a file using an input element with the ID "picInput"
var picInput = document.getElementById("picInput");
picValue = picInput.files[0];
//"postString" is the string with all the other text information that is being sent
//All the other info in it is received fine, it is just the picture having problems
postString += "pic=" + picValue;
var xmlhttp = new XMLHttpRequest;
xmlhttp.open("POST","handler.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(postString);
这是PHP:
$pic = $_FILES['pic'];
ftp_put($ftpCon,"pics/".$name,$pic,FTP_BINARY) or die(mysqli_error($con));
使用此代码,我得到“$ pic = $ _FILES ['pic']的'未定义索引';”线。
如果我将$ _FILES更改为$ _POST,我会收到“ftp_put([object File]):无法打开流:没有这样的文件或目录”
答案 0 :(得分:0)
您是否想尝试表单内容?如果是,您可以尝试AJAX form Plugin
$("body").on('submit','form#someForm', function(e){
e.preventDefault();
$(this).ajaxSubmit({
target: '#output',
success: afterSuccess
});
});
然后你必须把文件和其他内容放在
中<form id="someForm" method="post" action="handler.php"></form>
并将文件输入命名为
<input type="file" name="pic" />
完成所有操作后将调用afterSuccess函数
#output可用于显示进度或类似的内容