2016-03-16 41 views
0

兩個文件我想在HTML文件上傳如下:無法上傳在PHP

<tr><td><?php _e("Upload Trust Logo","emarksheet"); ?></td><td><label class="btn btn-danger" for="file-sel"><input id="file-sel" type="file" name="imaget" style="display:none;" size="25" />Browse to Upload Logo ....</label></td></tr> 
<tr><td><?php _e("Upload Institute Logo","emarksheet"); ?></td><td><label class="btn btn-primary" for="file-sel2"><input id="file-sel2" type="file" name="image" style="display:none;" size="25" />Browse to Upload Logo ....</label></td></tr> 

兩個上傳這些文件。我的php代碼如下:

$path = plugin_dir_path(__FILE__); 
    $file = $_FILES['image']; 
    //print_r($_FILES); 
    $name1 = $file['name']; 
    $type = $file['type']; 
    $size = $file['size']; 
    $tmppath = $file['tmp_name']; 
    move_uploaded_file ($tmppath, $path.'logos/'.$name1); 
    //upload data end 

    //upload trust logo` 
    $file2 = $_FILES['imaget']; 
    //print_r($_FILES); 
    $name2 = $file2['name']; 
    $type2 = $file2['type']; 
    $size2 = $file2['size']; 
    $tmppath2 = $file2['tmp_name']; 
    move_uploaded_file ($tmppath2, $path.'logos/'.$name2); 

當我上傳文件。與$name2文件名上傳但名稱$name1文件沒有被上傳

請幫助爲什麼不能上傳

+0

首先使用'print_r($ _ FILES)'檢查將會出現什麼值。 – Yash

+0

當我更改ID'file-sel2'到'file-sel'時,我得到'Array([imaget] => Array([name] => IMG_20151020_205510.jpg [type] => image/jpeg [tmp_name] = > E:\ wamp \ tmp \ php803D.tmp [error] => 0 [size] => 2706889)[image] => Array([name] => [type] => [tmp_name] => [error] = > 4 [size] => 0))' –

+0

否則它是空白的數組 –

回答

2

當你張貼的「形象」的形象有一個錯誤4編碼。這意味着沒有文件上傳,如下所示: http://www.php.net/manual/en/features.file-upload.errors.php

爲什麼?

由於您正在獲取$ _FILES中的信息,因此您不會發布大於post_max_size php.ini指令的數據總量,因爲在這種情況下,$ _FILE將完全爲空。

然後,可能會超過php.ini upload_max_filesize,即單個文件的最大大小,或者max_file_uploads設置爲1,因爲max_file_uploads是允許同時上傳的最大文件數。

http://php.net/manual/en/ini.core.php和你的php.ini文件中檢查這些參數。

我試着在我的本地服務器這個片段中,並放置在[www_root] /tests/uploads/test1.php(注意我只是用我們的情況下,相關部分):

<?php 
if (empty($_FILES)) { 
    echo "<form enctype='multipart/form-data' method='POST' action='http://localhost/tests/uploads/test1.php'>"; 
    echo '<input id="file-sel" type="file" name="imaget" size="25" />'; 
    echo '<input id="file-sel2" type="file" name="image" size="25" />'; 
    echo '<button type="submit">Submit</button>'; 
} else { 
    echo print_r($_FILES); 
} 

這兩個文件,在哪裏正確上傳。那麼問題必須在PHP配置中,而不是在實際的PHP代碼中。

我在php.ini值:

  1. 的post_max_size = 8M
  2. 的upload_max_filesize = 2M
  3. max_file_uploads = 20

這意味着我可以在同一時間上傳20個文件,但總計不能超過8M,單個文件不能超過2M。

編輯:在修改php.ini文件後,服​​務器必須重新啓動才能加載這些新值。

希望它有幫助。