我试图通过我的php脚本(大小约89kb)上传图像。我的index.php的代码是:
<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="file_uploader.php" method="post"
enctype="multipart/form-data">
<input type="file" name="file" size="100" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
与file_uploader.php
放在同一个目录中。然后file_uploader.php的代码是:<?php
if( $_FILES['file']['name'] != "" )
{
copy( $_FILES['file']['name'], "" ) or
//Exit and show the error message, die does this
die( "Could not copy file!");
}
else
{
die("No file specified!");
}
?>
<html>
<head>
<title>Uploading Complete</title>
</head>
<body>
<h2>Uploaded File Info:</h2>
<ul>
<li>Sent file: <?php echo $_FILES['file']['name']; ?>
<li>File size: <?php echo $_FILES['file']['size']; ?> bytes
<li>File type: <?php echo $_FILES['file']['type']; ?>
</ul>
</body>
</html>
目录index和file_uploader的权限为:755.
脚本似乎加载,但我得到错误"无法复制文件",不知道这里发生了什么。有人能给我点建议吗?谢谢! !
看一下文档,然后请解释一下copy( $_FILES['file']['name'], "" )
应该做什么?如果我是你,我会修复该语句,并将其替换为专门为此创建的更安全的变体:move_uploaded_file。
另外,通读手册中的这一节,你可能会在你的代码中发现另一个bug;如果你使用$_FILES[0]['tmp_name']
可能会使它工作得更好。
把所有这些放在一起;我使用:
move_uploaded_file($_FILES[0]['tmp_name'], __DIR__ .'/'. $_FILES[0]['name']);