Php 如何使用smarty将文件上载到服务器?

Php 如何使用smarty将文件上载到服务器?,php,smarty,Php,Smarty,我已经编写了将文件上传到服务器的代码,如下所示 Home.tpl <form enctype="multipart/form-data" method="post" action="upload_file.php" > <label for="file">Filename:</label>&nbsp;&nbsp; <input type="file" name="file" id="file"><

我已经编写了将文件上传到服务器的代码,如下所示

Home.tpl

     <form enctype="multipart/form-data" method="post" action="upload_file.php"  >
     <label for="file">Filename:</label>&nbsp;&nbsp;
     <input type="file" name="file" id="file"><br>
但我发现“未定义索引:文件”错误。请帮我摆脱那里。

改变

if(($_FILES["file"]["size"] > 0))


如果每次都出现错误,那是因为您没有设置变量$\u文件。该变量仅在提交表单后设置

在这种情况下,要消除错误,请添加变量控件:

if((isset($_FILES["file"])) && ($_FILES["file"]["size"] > 0))
我认为第一个文件是$_FILES[“file”][“tmp_name”][0]。 使用var_dump($_文件)检查它;或打印\u r($\u文件) 然后用foreach遍历它。差不多

foreach ($arr as &$value) {
    //...
    $moveResult = move_uploaded_file($fileTmpLoc, "uploads/" . basename( $_FILES["file"]["name"][$arr]); 
}

什么时候出现“未定义索引:文件”错误?执行
var\u转储($\u文件)
首先在
upload_file.php
中,检查其外观是否与您期望的外观相同。@Martinperry:当执行达到该行时,“如果($_FILES[“file”][“size”]>0))”。我来了。你看起来不像在做很多错误检查。首先,您不必费心检查error字段的值。在处理用户输入(即文件上传)时,你不能对验证他们发送给你的数据吹毛求疵。这是不对的。对于多个文件,没有$_文件[“文件”][“名称”][0]。[0]将给出名称的第一个字符(但我不确定是否也在PHP中),我使用的名称与您所说的相同,但我不会得到任何错误。但脚本未运行。请打开错误报告。若并没有错误,那个么脚本必须运行,若你们调用它,我会像你们说的那个样使用,但我不会得到任何错误。但脚本没有运行
if((isset($_FILES["file"])) && ($_FILES["file"]["size"] > 0))
foreach ($arr as &$value) {
    //...
    $moveResult = move_uploaded_file($fileTmpLoc, "uploads/" . basename( $_FILES["file"]["name"][$arr]); 
}