使用php上传文件时遇到问题(使用Linode服务器)

时间:2015-07-11 14:34:51

标签: php

我正在尝试通过我的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>

目录索引和file_uploader的权限是:755。

脚本似乎加载但我收到错误“无法复制文件”,不知道这里发生了什么。有人可以给我一些指示吗?谢谢!

1 个答案:

答案 0 :(得分:1)

查看https://github.com/doconix/django-mako-plus,然后请解释一下copy( $_FILES['file']['name'], "" )应该做什么?如果我是你,我会修复该声明,并将其替换为专门为此创建的更安全的变体:documentation

此外,请仔细阅读move_uploaded_file,您可能会在代码中发现另一个错误;如果您使用$_FILES[0]['tmp_name']可能会让它更好用。

把所有这些放在一起;我使用:

move_uploaded_file($_FILES[0]['tmp_name'], __DIR__ .'/'. $_FILES[0]['name']);