2011-11-17 28 views
0

我有很多的包含在CMS我創建中的形式。直到今天,他們一直工作得很好。我遇到的問題與正在上傳的文件和包含奇數字符的$_FILES數組有關。

表格內裏有我:

<tr> 
    <td>Related PDF File:</td> 
    <td><input type="file" name="pdfFile" size=50" value="<? pv($frm["pdfFile"]) ?>"></td> 
</tr> 

在提交返回到我的劇本,我確認如果字段提交了一份文件:

if($_FILES['pdfFile']['name'] != '' && $_FILES['pdfFile']['error'] == 0) { 
    $up_file->save($CFG->dirroot . "/docs/services/", "pdfFile", 1); 
    $frm['pdfFile'] = $up_file->getFilename('pdfFile'); 
} 

的問題是,如果我展示我的$ _FILES數組當字段沒有提交時我得到以下內容:

Array 
(
    [pdfFile] => Array 
     (
      [name] => ò… 
      [type] => 
      [tmp_name] => 
      [error] => 4 
      [size] => 0 
     ) 
) 

[name]內有一些時髦的特殊字符。有沒有人見過這個?它只發生在我的一臺服務器上。如果輸入字段實際上具有提交的文件,則不存在問題。

在此先感謝您的任何意見。

+0

是什麼在'$ FRM [ 「pdfFile」]'?順便說一下,你不能這樣設置。否則,您可以在用戶不知道的情況下從用戶的計算機上傳文件。 – CodeCaster

+0

你爲什麼要設置輸入的值爲什麼?瀏覽器通常會忽略它,因爲允許頁面指定要上傳哪個文件會帶來安全隱患。 – JAL

+0

我見過那個時髦的特殊字符'ò'(就像你說的那樣),它只是一個字符。你有什麼問題呢? – hakre

回答

2

想出什麼問題了。 PHP最近由我們的主機提供商更新爲5.3.8。此版本中存在一個錯誤,它刪除上載文件中的第一個字符。你可以在這裏看到的錯誤:$_FILES 'name' missing first character after upload.

出於某種原因,magic_quotes_gpc的設置爲在更新後。把它關掉了,現在一切都很好。

感謝您的意見。

0
[error] => 4 

使用documentation

UPLOAD_ERR_NO_FILE 

    Value: 4; No file was uploaded. 

確保ü在你的<form>標籤enctype="multipart/form-data"屬性。

+0

是的我擁有正確的enctype,並且沒有文件上傳,因爲字段留空。如果我提交要上傳的文件,我沒有問題。 – cosmoba