2012-02-07 69 views
0

我有一种形式可以将图像从计算机上传到服务器,但它不起作用。我没有收到任何错误消息,所以这很烦人。 (首先,我拒绝了权限,但通过更改权限解决了这个问题),但现在当我提交表单时,一切正常,但文件不会复制到目标文件夹。 (该文件夹存在:我file_exist()尝试了...)复制php没有错误

下面是部分代码:

<form action='/changingfruit/index.php?item=bad' name='form' method='post' enctype='multipart/form-data'> 
    <tr> 
     <td><input type='text' name='titel_nl' value="titel nl" /><br/><input type='text' name='titel_fr' value="titel fr"/></td> 
     <td><input type='file' name='text_nl' id='text_nl' accept="image/*"/><br/><input type='file' name='text_fr' id="test_fr" accept="image/*"/></td>   
     <td class="vTop"><input type="submit" value="Bewaar"/></td> 
    </tr> 
    </form> 

部分其中的值被发送到DB:

$str_titel_nl = $_POST["titel_nl"]; 
    $str_titel_fr = $_POST["titel_fr"]; 
    $str_text_nl = $_FILES["text_nl"]["name"]; 
    $str_text_fr = $_FILES["text_fr"]["name"]; 
     if(!empty($_FILES["text_nl"]["name"])){ 
     $tmp = $_FILES['text_nl']['tmp_name'] ; 
     $foto = $_FILES['text_nl']['name'] ; 
     $copied = copy($tmp, $images_nl.$foto); 
    unlink($tmp); 
     } 

(当然以上只是部分代码:但它的这一部分是不会工作:

 if(!empty($_FILES["text_nl"]["name"])){ 
     $tmp = $_FILES['text_nl']['tmp_name'] ; 
     $foto = $_FILES['text_nl']['name'] ; 
     $copied = copy($tmp, $images_nl.$foto); 
    unlink($tmp); 
     } 

下面这部分的代码所以工作正常,所以没有错误,但也没有形象。 有人知道问题出在哪里吗?

非常感谢!

找到答案 所以这确实是一个权限问题。一切都是777,但放置图像的最后一个文件夹有755.(/ fruits/img/2012/thumb /)拇指是755.我只是忽略了它。感谢大家的帮助!

+0

应该检查Apache的错误日志,或任何你要保存的PHP错误 – 2012-02-07 09:23:25

+3

* BLEARGH!*您不必''上的每一行代码。只需打开一个块,将代码放在那里,然后关闭块。用下面这行代码: – Polynomial 2012-02-07 09:24:55

回答

3

您的上传代码非常混乱。而不是使用副本,你应该使用move_uploaded_file,并验证它实际工作,然后执行所需的任何操作。

我也不确定为什么每一行都是以<?php开头并以?>结尾? 你可以把它全部写成一个块,而且我认为它也会更有意义,并且会让你的代码更清晰。

我建议的最后一件事是读"Handling File Uploads" from the PHP Manual。这可能会对您遇到的问题有所了解。

P.S.尝试在顶部ini_set("display_errors","On"); error_reporting(E_ALL);上添加并查看是否收到任何错误消息。

+0

:ini_set(“display_errors”,“On”);使用error_reporting(E_ALL);我仍然没有得到错误。 – user993177 2012-02-07 09:44:32

+0

你确定它在一个PHP块吗?如果是这样,它肯定会出现一些错误。你可以在pastebin.com上发布你的整个PHP文件吗? – 2012-02-07 09:57:54

+0

是的,它是在一个php块中,因为在我在这里展示的代码之后,还有其他代码可以将这些项目写入数据库,并且工作正常。所以它可能还有一些权限问题。 – user993177 2012-02-07 10:01:20

0

你可以试试这个

$flag = @copy($temp, $move); 
if ($flag === true) 
{ 
    print "Uploaded"; 
} 
0

我已经发布了文件上传一个简单的解决方案,而无需担心实施。

点击查看线程

image uploading issue in codeigniter 2.1.0

请仔细阅读本节

$uploader->getMessage();

将返回与上传失败错误的字符串。所以你可以理解上传失败的原因。

感谢