2011-11-17 64 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