微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – XHR.send(文件参数)?

我试图弄清楚如何在同一 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);

然后,在服务器端,您可以使用此代码(PHP)访问您的变量:

<?
  $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 举报,一经查实,本站将立刻删除。

相关推荐