这个问题可能有点像菜鸟,但我找不到这个。如果我使用这种方式发送文件:
$scope.uploadFile = function(file) {
if ($scope.XHR2Support()) {
var xhr = new XMLHttpRequest();
xhr.upload.onprogress = function(e) {
console.log("PROGRESS", e.loaded, e.total);
}
xhr.onload = function(e) {
if (xhr.status == 200) {
console.log("Upload finished!");
}
else {
console.log("Upload error", xhr.status);
}
}
xhr.onerror = function(e) {
console.log("Error occured", e);
}
xhr.open("POST", "./?files,upload&test=test", true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader("Content-Type", file.type);
xhr.send(file);
}
}
,如何使用PHP的正确MIME类型接收并保存它?
答案 0 :(得分:1)
您无法将MIME类型保存到已保存的文件中。浏览器根据文件扩展名决定它是哪种MIME类型,除非发送Content-type
HTTP标头。
您可以使用服务器端的apache_request_headers()读取xhr.setRequestHeader
发送的http标头。
要通过XHR2发送文件,最简单的方法是使用FormData
对象,请参阅上传文件或blob 部分in this tutorial。