我有一个简单的HTML表单,该表单允许用户选择多个文本文件。我想遍历它们并相互呼应。我有以下代码:
Upload text document: <br/><br>
<form action="output.php" method="post" enctype="multipart/form-data">
<input type="file" name="documents[]" size="50" multiple="multiple" />
<br />
<input type="submit" value="Upload File" />
</form>
然后在output.php中,当我想回显每个文件并回显其内容时。我尝试了这段代码:
$filenames = array();
if(isset($_FILES["documents"]))
{
for($i=0; $_FILES['documents']['name'][$i] != '' ; $i++)
{
$filenames[$i] = $_FILES['documents']['name'][$i];
$myfile = fopen("$_FILES['documents']['name'][$i]", "r") or die("Unable to open file!");
echo fread($myfile,filesize("$_FILES['documents']['name'][$i]"));
fclose($myfile);
}
}
我收到以下错误:
解析错误:语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期望的标识符(T_STRING)或变量(T_VARIABLE)或C:\ wamp \ www \ php_sandbox \ ValenceV1 \ ValenceV1_output.php中的数字(T_NUM_STRING)
我该如何解决此代码,或者如果有更好的方法来执行此操作,请提供它。谢谢。
在您的代码中,该错误在用双引号引起来的那些行上触发,然后用单引号引起来了数组索引。如果您希望在不使用的情况下读取这些文件move_upload_file()
,请改用tmp_name
索引来读取临时文件:
<?php
$contents = '';
if(isset($_FILES['documents'])) {
$num_of_files = count($_FILES['documents']['name']);
for($i = 0; $i < $num_of_files; $i++) {
$tmp = $_FILES['documents']['tmp_name'][$i];
$contents .= file_get_contents($tmp);
}
echo $contents;
}
?>
如果您决定foreach
口味直接指向tmp_name
:
$contents = '';
if(isset($_FILES['documents'])) {
foreach($_FILES['documents']['tmp_name'] as $tmp) {
$contents .= file_get_contents($tmp);
}
echo $contents;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句