我有一个非常简单的上传脚本,我正在localhost开发环境中玩。表单接受一个文件并将其发布到保存文件的接收脚本。基本上是您的股票标准PHP文件上传表单。
uploader.php
<!doctype html>
<html>
<head>
<title>File upload test</title>
</head>
<body>
<form action="upload_receiver.php" method="POST" enctype="multipart/form-data">
<input name="upload_file" type="file"/>
<input name="upload_submit" type="submit"/>
</form>
<script>
</script>
</body>
</html>
upload_receiver.php
<?php
$upload_dir = "uploads/";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $upload_dir . basename($_FILES['upload_file']['name'])))
{
echo 'success';
}
}
问题是,我尝试“上传”的每个文件都到达我的“uploads”文件夹,好像它们可能处于损坏状态并且将不再打开。我甚至无法在Notepad ++中打开它们来查看文件的内容,Notepad ++会抛出一个错误:“访问被拒绝。”
之前有没有遇到过这个?任何想法为什么会发生这种情况,以及我如何纠正它?
编辑以澄清评论中提出的一些问题:
我猜测文件已损坏,因为我可以完全访问他们上传到的文件夹,我可以在那里看到文件,但如果我点击图片,我可以'请参阅预览缩略图。
确实问题可能不是腐败,我已经重新提出问题,说他们似乎被破坏了。
我确实在提交后看到“成功”,并且Apache日志中没有错误。
max_upload_size
是500M。 post_max_size
是500M。
再次编辑:
在比较了我公司提供的MD5哈希值之后,我确定文件很好(它们没有被破坏)。这是一个访问问题。我可以使用这个问题解决这个问题:Change permissions of file uploaded by PHP
感谢所有为此提供帮助的评论者。