我试图弄清楚如何在同一
XMLHttpRequest中发送文件和参数.这可能吗?
显然我可以做xhr.send(文件参数)或xhr.(文件,参数).而且我认为我不能设置两个不同的请求标头来执行此操作…
xhr.setRequestHead('X_FILENAME',file.name) xhr.send(file); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send(params);
有没有办法发送params而不必使用GET或次要xhr请求?
解决方法
如果您依赖支持FormData的浏览器,您可以使用下面的代码(JavaScript):
var formData = new FormData(); formData.append('param1','myParam'); formData.append('param2',12345); formData.append('uploadDir','public-data'); formData.append('myfile',file); xhr.send(formData);
<? $param1 = $_POST['param1']; //myParam $param2 = $_POST['param2']; //12345 $uploaddir = $_POST['uploadDir']; //public-data $fileName = $_FILES['myfile']['name']; $fileZise = $_FILES['myfile']['size']; $uploaddir = getcwd().DIRECTORY_SEParaTOR.$uploaddir.DIRECTORY_SEParaTOR; $uploadfile = $uploaddir.basename($fileName); move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile); echo $fileName.' ['.$fileZise.'] was uploaded successfully!'; ?>
要获取$_FILES [‘myfile’]的所有参数,请使用var_dump($_ FILES [“myfile”])
原文地址:https://www.jb51.cc/js/159312.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。