2014-05-06 53 views
0

我想同時上傳圖片和PDF,但它給出了錯誤。我不知道我錯過了什麼,圖片上傳得當,但上傳pdf時出現問題。 這是一段代碼。上傳時未獲取文件類型和tmp_name

<pre> 
<?php 
if ($_GET["action"] == "submit") { 

    $imageType="press_release_image_"; 
    $ext= substr(basename($_FILES['brwAddNews']['name']),-4); 
    $filename=$imageType.$ext; 
    $target_path = $filename; 

    $pdfType="press_release_pdf_"; 
    $pdfext= substr(basename($_FILES['brwAddNewsPdf']['name']),-4); 
    $pdffilename=$pdfType.$pdfext; 
    $pdf_target_path = $pdffilename; 
    print_r($_FILES) ; 
    $pdfext= substr(basename($_FILES['brwAddNewsPdf']['name']),-4); 
    if($pdfext==".pdf"){ 
     if(move_uploaded_file($_FILES['brwAddNews']['tmp_name'], $target_path) && move_uploaded_file($_FILES['brwAddNewsPdf']['tmp_name'], $pdf_target_path)) 
     { 
      echo "file uploaded"; 
     } 
     else echo "Not uploaded"; 
    } 
    else echo "Its not a pdf file"; 
} 

?> 

<center> 
<form action="try.php?action=submit" method="post" enctype="multipart/form-data" name="frmNews" id="frmNews" > 
    <table><tr><td>NAME :<td/><td><input name="news_name" type="text" class="textfield" id="news_name" value="" /><br></td></tr> 
    <tr><td>PDF : <td/><td><input name="brwAddNewsPdf" type="file" id="brwAddNewsPdf" multiple="multiple" /><br></td></tr> 
    <tr><td>IMAGE : <td/><td><input name="brwAddNews" type="file" id="brwAddNews" multiple="multiple"/><br></td></tr> 
    <tr><td><td/><td><input name="btnSave" type="submit" class="buttons" id="btnSave" value="Save"></td></tr> 
</form> 
</center> 

我得到輸出:

Array 
(
    [brwAddNewsPdf] => Array 
     (
      [name] => Newsletter-volume16.pdf 
      [type] => 
      [tmp_name] => 
      [error] => 1 
      [size] => 0 
     ) 

    [brwAddNews] => Array 
     (
      [name] => PDF-thumbnail.jpg 
      [type] => image/jpeg 
      [tmp_name] => /tmp/php0KuLSj 
      [error] => 0 
      [size] => 4536 
     ) 

) 
Not uploaded 

可能是什麼問題?我錯過了什麼?

+0

http://www.php.net/support。php – hakre

回答

1

直到現在我還是有同樣的錯誤。當我看到這個問題時,我需要幫助。

這是一個有點老問題,但這裏的解決方案:

第一件事,錯誤。 你的輸出方式,你有2個文件,先用錯誤1,第二個與錯誤0 在documentation我們對誤差值這樣的解釋:

UPLOAD_ERR_OK
值:0;
沒有錯誤,文件上傳成功。

UPLOAD_ERR_INI_SIZE
Value:1;
上傳的文件超出了php.ini中的upload_max_filesize指令。

其次,知道你的錯誤是關於你的檔案大小,你只需要增加upload_max_filesizephp.ini文件。 這有點簡單,但你可以做得更好。 如果你把這個上傳-形式:

<input type="hidden" name="MAX_FILE_SIZE" value="12000" /> 

你會檢查文件的大小,然後再上傳。控制上傳的最大大小並不是最好的辦法(它可以被簡單地欺騙),但它可以幫助用戶知道他的文件太大,無需上傳。
請參閱here有關PHP Upload的更多信息。

Finnaly,重新啓動你的php。這裏我使用php5-fpm。

# service php5-fpm restart 

提示:請勿使用您想要在php.ini中上傳的確切尺寸,我會使用比我想要的更多的MB。然後我在我的代碼中處理它。這將刪除錯誤,並且您可以在應用程序中按照您的意願處理。例如:如果你有12M的文件,放20M。

OBS .:有多個文件,我真的不知道總和大小與否。

2

Error Messages Explained手冊頁沒有留下任何疑點:

值:1;上傳的文件超出upload_max_filesize指令 的php.ini

+0

它已經設置爲12MB –

+0

你有問題嗎? –

+0

我沒有找到你,你正在談論的是哪個問題。? –

相關問題