我创建的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 :(得分:2)
找出问题所在。 PHP最近由我们的托管服务提供商更新到5.3.8。此版本中存在一个错误,它删除了上传文件中的第一个字符。您可以在此处查看错误:$_FILES 'name' missing first character after upload.
由于某些原因,更新后magic_quotes_gpc设置为on。关掉它,一切都很好。
感谢您的评论。
答案 1 :(得分:0)
[error] => 4
UPLOAD_ERR_NO_FILE
Value: 4; No file was uploaded.
确保您的enctype="multipart/form-data"
代码中包含<form>
属性。