php上传表单中显示错误

时间:2017-05-15 16:42:03

标签: php html forms file-upload

我有一个php表单,理论上应该将图像文件上传到特定目录,但它不会这样做。这是HTML:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

这是php:

<?php
$cartella_caricamento = "pagamenti/";
$file_caricato = $cartella_caricamento.basename($_FILES["fileToUpload"]
["name"]);
$uploadOk=1;
$imageFileType=pathinfo($file_caricato,PATHINFO_EXTENSION);
if(isset($_POST["submit"]))
{
$check = getimagesize($_FILES["fileToUpload"]["nome_upd"]);
if($check !== false)                                                            //Check if the file is an image
{
echo "Il file è un immagine, OK".$check["mime"].".";
$uploadOk=1;
} else {
echo "Il file non è un immagine.";                  
$uploadOk=0;
}
if ($_FILES["fileToUpload"]["size"] > 2000000) {                                    //check the image size, if it is >2MB it refuses it
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk==0) {
echo "Il file non è stato caricato a causa di un errore";
} else {
if(move_uploaded_file($_FILES["file_caricato"]["nome_upd"], $file_caricato))
{
echo "Il file".basename($_FILES["fileToUpload"]["name"])."è stato caricato";
}else {
echo "C'è stato un errore nel caricamento del file.";
}
}
}

问题在于,当我使用XAMPP运行页面时,它在第21行中说明

$check = getimagesize($_FILES["fileToUpload"]["nome_upd"]);

有一个未定义的索引(nome_tmp),我不知道为什么 我在资源管理器窗口中选择的图像没有上传到目录&#34; pagamenti /&#34;

1 个答案:

答案 0 :(得分:1)

您似乎使用意大利语措辞来处理英语自动填充数组键。我不知道是否有一个本地语言插件可以接受这个,但标准数组值为can be found here

  

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

     

$_FILES['userfile']['type']
     文件的mime类型,如果浏览器提供了此信息。一个例子是“image / gif”。然而,在PHP方面没有检查这个mime类型,因此不会将其值视为理所当然。

     

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

     

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

     

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

因此,通过阅读代码,您应该使用的数组值是 tmp_name

/***
 * Will use the uploaded file path
 ***/ 
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);