2012-02-07 85 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();

將返回與上傳失敗錯誤的字符串。所以你可以理解上傳失敗的原因。

感謝