2011-06-26 98 views
1

我完全难住。我试图通过HTTPS上传一张简单的照片。我已经做了无数次,但这一次它不工作。PHP上传问题

这里的情况。我正在使用一个非常简单但强大的文件上传脚本,简单的输入=文件等,并使用POST提交按钮上传,从那里PHP接管并完成剩下的工作。一旦在PHP方面,我经历了一些问题解决/调试,并注意到文件名是一堆goop ... uploads /1. 8D J Q 9。当然不是我选择的文件。

我不确定这是SSL,HTML5还是PHP的问题。通过的所有其他数据在数据库中都非常易读。

我注意到c:\ fakepath的文件上传框中有新的东西,我过去几个月使用过HTML5,并没有看到它,查看它并看到它是一个HTML5安全特性。不知道这是否导致问题?

好的,所以我已经和朋友验证过(我发疯了)HTML和PHP没问题。

我甚至打破下来,去与超仍没有运气简单...

$uploaddir = 'uploads/'; 

$uploadfile = $uploaddir . basename($_FILES['photo']['name']); 
$filename = $_FILES['photo']['name']; 
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile)) { 
    echo "Alls good."; 
} 

而且在HTML页面上我使用的jQuery插件“niceforms”我已经关闭了统治它出来,但仍然不起作用。

谢谢。

+0

这是在Apache服务器还是IIS?或者是什么? – tplaner

回答

1

它总是简单的事情不是吗?我想你可能会忽略你将文件移动到的相对上传目录路径。我不会在这里使用相对路径。

$uploaddir = 'uploads/'; 

而是尝试使用上传目录的完整文件系统路径。这通常是与您的“上传”目录连接的文档根目录。

$_SERVER['DOCUMENT_ROOT'] or dirname(__FILE__) 

...应该帮助定义路径。

$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/uploads/'; 
3

我想知道是否宣布从你像下面的一个:

<form enctype="multipart/form-data" action="uploader.php" method="POST"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
    Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
    <input type="submit" value="Upload File" /> 
</form> 

你应该申报enctype如果你上传的东西。