我正在尝试在Intranet上从客户端上传文件到服务器端。
我正在
file_handler.php中的未定义的索引:file_data
与:
有关$fd = $_POST['file_data'];
非常感谢您对此的意见!提前谢谢。
我的 Uploader.php 文件如下:
<!DOCTYPE html>
<html >
<head>
<title>Upload file</title>
</head>
<body>
<script>
var http = new XMLHttpRequest();
var url = "file_handler.php";
var file_data = "name=s:\a.pdf&size=123&other=etc";
http.open("POST", url, true);
// headers
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", file_data.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(file_data);
</script>
</body>
</html>
我的file_handler.php页面是:
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
date_default_timezone_set('Etc/UTC');
// file data
$fd = $_POST['file_data'];
// working on the file
$temp_dir = 'sub3/';
$new_dir = 'sub5/';
// new unique name
$new_name = time() . '_' . $fd['name'];
// copy?
if (@move_uploaded_file($temp_dir . $fd['name'], $new_dir . $new_name)) {
unlink($temp_dir . $fd['name']);
}
?>
答案 0 :(得分:1)
file_data
不是$_POST
数据。您请求的$_POST
数据为name
,size
&amp; other
。试试这个。
if(isset($_POST['name'])){
// working on the file
$temp_dir = 'sub3/';
$new_dir = 'sub5/';
// new unique name
$new_name = time() . '_' . $_POST['name'];
// copy?
if (@move_uploaded_file($temp_dir . $_POST['name'], $new_dir . $new_name)) {
unlink($temp_dir . $_POST['name']);
}
}