gpt4 book ai didi

php - 使用 XMLHttpRequest 上传文件

转载 作者:可可西里 更新时间:2023-11-01 00:33:25 28 4
gpt4 key购买 nike

我是 XMLHttpRequest 的新手,我一直使用它作为使用 JavaScript 的 FormData() 的 AJAX 文件 uploader 。

我遇到的问题是它似乎可以正常上传,尽管我认为它没有将它发送到正确的 PHP 文件,或者我的 PHP 错误,因为在图片应该所在的文件夹中没有显示任何内容。

目前不知道如何查看返回的html数据

JavaScript:

$("#form").submit(function(event) {

event.preventDefault();
event.stopPropagation();

var form = $(this);
var file = document.getElementById("file");
var data = new FormData();

var onerror = function(event) {
alert("An error occoured!");
}
var onprogressupdate = function(event) {

if(event.lengthComputable) {

var percent = event.loaded / event.total * 100;

$("#progress").html(percent+"%");

}

}
var onreadystatechange = function(event) {

if(request.status == 200 && request.readyState == 4) {

alert("Uploaded!");

$("#progress").hide();
$("#progress").html("");

}
else {
alert("Alternative state and/or status");
console.log("state: " + request.state);
console.log("readyState: " + request.readyState);
}

}

for(var i = 0; i < file.files.length; i++)
data.append('file[]', file.files[i]);

$("#progress").show();
$("#progress").html("Uploading files...");

var request = new XMLHttpRequest();

request.upload.addEventListener("error", onerror);
request.upload.addEventListener("progress", onprogressupdate);
request.upload.addEventListener("readystatechange", onreadystatechange);

request.open("post", "upload.php");
request.setRequestHeader("Content-type", "multipart/form-data");
request.send(data);

});

上传页面

<?php

if(isset($_FILES["file"])) {

$f = $_FILES["file"];
$dir = "data";

if(!file_exists($dir))
mkdir($dir);

foreach($f["name"] as $k => $name) {

$file = $dir."/".$name;

if($f["error"][$k] == 0 && move_uploaded_file($f["tmp_name"][$k], $file)) {
$uploaded[] = $file;
}

}

die(json_encode($uploaded));
}

?>

最佳答案

不要设置内容类型,它会自动设置。

关于php - 使用 XMLHttpRequest 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com