图像没有从HTML表单上传或没有通过PHP代码读取



我正试图使用PHP将HTML代码中的图像添加到MySQL数据库中。然而,一旦我上传图像并尝试处理它,它就会在传输中丢失。HTML代码:

<form class="" enctype="multipart/form-data" 
action="complete-order.php?pid=<?php echo $row['pid']; ?>" method="post">
<input type="submit" name="complete-submit" 
value="Complete Order" style="float: right" />
<div style="overflow: hidden; padding-right: .5em;">
<input type="file" name="finalImg" required 
placeholder="Final Image Order" style="width: 100%;" />
</div>
<label for="">Upload Final Image</label>
</form>

PHP代码如下。目前,没有任何回应。我将在if条件中添加图像处理代码,但$file变量没有得到任何结果。

// Save Final image
if(isset($_POST['complete-submit'])) {

$file = $_FILES['finalImg'];
if($file){
echo "HERE";
}
}

全局$_FILES将包含所有上传的文件信息。示例形式中的内容如下。请注意,这假设使用文件上传名称userfile,如上面的示例脚本中所使用的。这可以是任何名称。

$_FILES["userfile"]["name"]客户端计算机上文件的原始名称。

$_FILES["userfile"]["type"]文件的mime类型(如果浏览器提供了此信息(。一个例子是";image/gif";。然而,这个mime类型在PHP端没有被检查,因此不会认为它的值是理所当然的。

$_FILES["userfile"]["size"]上载文件的大小(以字节为单位(。

$_FILES["userfile"]["tmp_name"]服务器上存储上载文件的文件的临时文件名。

$_FILES["userfile"]["error"]与此文件上载关联的错误代码。

在看到任何输出之前,有两个条件需要评估为true,所以从排除这些条件开始:

<?php
// troubleshoot
echo "<pre><tt>";
var_dump(isset($_POST['complete-submit']), $_FILES['finalImg']);
echo "</tt></pre>";
// Save Final image
if(isset($_POST['complete-submit'])) {

$file = $_FILES['finalImg'];
if($file){
echo "HERE";
}
}

使用您的代码和内置的PHP 7.4服务器,我在提交表单后看到以下内容:

bool(true)
array(5) {
["name"]=>
string(39) "Screenshot from 2020-12-02 15-15-54.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phphaJldU"
["error"]=>
int(0)
["size"]=>
int(238069)
}
HERE

因此,看起来您的表单或处理脚本没有任何问题。您可能需要查看您的Web服务器日志,看看是否有任何错误。

最新更新