2011-10-14 138 views
1

我不惹PHP很多,但我没有看到这有什么问题。我在15分钟前使用了相同的代码,但现在它停止工作。我没有改变任何东西,所以我有点困惑。PHP文件不能上传

不管怎么说,这是一个形式,你都应该提交截图,这里是我的窗体的代码,

<form method="post" 
enctype="multipart/form-data"> 
<label for="file">Screenshot of them agreeing to terms:</label> 
<input type="file" name="file" id="file" /> <br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

我觉得没有什么不妥。下面是处理这一切的PHP(我想/希望)

if(isset ($_POST['loanee'])) { 
      if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/pjpeg"))) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    $name = md5_file(sys_get_temp_dir() . $_FILES['tmp_name']); 
     move_uploaded_file(sys_get_temp_dir() . $_FILES["files"]['tmp_name'], "public_html/mc/images/{$name}.jpeg"); 
    } 
    } 

我没有得到任何回应我的,没有错误都出现在错误日志了,所以有什么不对?

感谢您的任何帮助。

Loanee不是问题,因为我的sql数据库在图片“上传”后被更新,我没有放置整个表格,因为它有一些信息我不认为是必要的,正如我之前所说的,表格工作正常,对不起,每个人都不断告诉我,Loanee没有设置在表单中,这是。

+1

'loanee'在哪里? – xdazz

+0

您应该为上传的文件提供适当的文件扩展名。 '.jpeg'对他们三个都不正确。 –

+0

其中是在您的窗体上使用** isset($ _ POST ['loanee'])的名称** Loanee **的元素** – punit

回答

1

您不必使用sys_get_temp_dir()$_FILES["files"]['tmp_name']已经指向临时目录。

所以更改您的代码是这样的:

$name = md5_file($_FILES["file"]['tmp_name']); 
move_uploaded_file($_FILES["file"]['tmp_name'], "public_html/mc/images/{$name}.jpeg"); 

编辑:哦,你应该使用is_uploaded_file检查文件是否已被上传。

+0

我收到一个错误,说第46行的文件名不能为空,这是第46行'$ name = md5_file($ _ FILES ['tmp_name']);' – Austin

+0

@Austin哦是的,你必须以与move_uploaded_file相同的方式引用它。 '$ _FILES [ '文件'] [ 'tmp_name的值']'。将解决这个问题在我的答案 – bummzack

+0

现在修正它.. $ _FILES'数组的关键应该是你的表单输入字段。所以你的情况是“文件” – bummzack

0

我看不到$_POST['loanee']被设置,但它需要设置。否则,有趣的代码就会跳过。

+0

对不起,它正在设置。这部分工作正常(我正在更新图片上传后的SQL数据库)应该说过的。 – Austin

+0

奥斯汀,虽然它是同一种形式的一部分?如果它没有被包含在同一个表单标签下,点击提交可能不会给你所有你想要的变量。 – Edison

+0

@Edison是的,这是相同的形式,谢谢你的回应。 – Austin

0

在您的PHP脚本的第一行,您检查应该来自HTML表单的loanee变量,但是您的表单中没有任何字段具有该名称。

更具体:

if(isset ($_POST['loanee'])) { // That line does not correspond to any input element into your form 

解决您的问题,或者删除语句的控制或添加新的领域与该名称的形式。

+0

它的形式,我只是没有上传整个表格。我更新了我的第一篇文章。对不起,我只是不认为整个表格是必要的。 – Austin

+0

尝试禁用该语句控件以检查上传是否仍然有效。如果工作,那么你可以专注于该声明 –