$path= $_SERVER['DOCUMENT_ROOT'] . "/img/".$HTTP_POST_FILES['fileupload']['name'];
if($ufile !=none)
{
if(copy($HTTP_POST_FILES['fileupload']['tmp_name'], $path))
{
echo "Successful<BR/>";
echo "File Name :".$HTTP_POST_FILES['ufile']['name']."<BR/>";
echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>";
echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
echo "<img src=\"$path\" width=\"150\" height=\"150\">";
}
else
{
echo "Error";
}
}
die();
为什么
echo "File Name :".$HTTP_POST_FILES['ufile']['name']."<BR/>";
不给我文件名?其他信息也没有得到回应
如果这是一个愚蠢的问题,我很抱歉,它与表格方法有关吗?
答案 0 :(得分:3)
您只是假设上传成功了。如果上传失败,$HTTP_POST_FILES
(或 正在使用的$_FILES
)仍然可以填充数据。你必须检查['error']
参数,然后才能上传任何内容,例如
if ($_FILES['ufile']['error'] !== UPLOAD_ERR_OK) {
die("Upload failed with error code " . $_FILES['ufile']['error']);
}
错误代码在此处定义:http://www.php.net/manual/en/features.file-upload.errors.php
同样,您的代码不安全,允许恶意用户在您想要的服务器上任意编写文件。不要在上传的文件上使用copy()
。 move_uploaded_file()
存在是有原因的。用它。
答案 1 :(得分:0)
使用move-uploaded-file移动上传的文件。
不推荐使用HTTP_POST_FILES,请使用$ _FILES。
http://www.php.net/manual/en/features.file-upload.php这应该可以帮到你。