我正在使用PHP构建一个web应用程序。我正在创建一个文件上传部分,但我有问题。
<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>
上载php:
<?php
$target_dir = "images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
对于图像来说,它工作得很好。但当我尝试检查上传mp4文件时会发生什么情况。它的回声文件已经存在,对不起,只有JPG,JPEG,PNG
超文本标记语言代码
<form method="POST" enctype="multipart/form-data">
<input id="tags" type="file" name="employer_image" />
<input type="submit" name="submit" value="submit">
</form
上载PHP
if (isset( $_POST['submit'] )
{
function GetImageExtension($imagetype)
{
if(empty($imagetype)) return false;
switch($imagetype)
{
case 'image/bmp': return '.bmp';
case 'image/gif': return '.gif';
case 'image/jpeg': return '.jpg';
case 'image/png': return '.png';
default: return false;
}
}
if (!empty($_FILES["employer_image"]["name"])) {
$file_name=$_FILES["employer_image"]["name"];
$temp_name=$_FILES["employer_image"]["tmp_name"];
$imgtype=$_FILES["employer_image"]["type"];
$ext= GetImageExtension($imgtype);
$imagename=date("d-m-Y").'-'.time().$ext;
$target_path = "folder-path".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
/* write insert query for store in mysql*/
}else{
exit("Error While uploading image on the server");
}
}
}
首先从本地选择文件,然后单击“提交”按钮将其重定向到上载。php文件第一个函数是白色的,用于查找文件的扩展名,它返回文件扩展名。在扩展名代码之后,您需要创建一个文件夹(在其中可以使用名称存储)。它将使用日期和时间获取文件名,您可以设置保存图像的文件目标路径,然后运行插入查询。首先检查文件夹权限,您可以在其中移动文件
谢谢Vivek
因为你有不允许其他扩展的条件,所以它根据代码工作:
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
显然你的目标文件夹中已经有这样的文件了。再检查一遍。
但是当我试图检查如果我上传mp4文件会发生什么。它回声抱歉,只有JPG,JPEG,PNG
这是一个限制,因为您的代码对其进行了限制。
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
如果文件不是jpg
,png
,jpeg
或gif
,则不允许上传。
它回显已存在的文件
这仅仅是因为文件已经存在(无论目录在哪里),由于这个检查:
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
很抱歉,上载文件时出错
我不明白这是为什么。如果($uploadOk==0)在所有其他条件中设置为0,则条件,因此应为true,并应回显“对不起,您的文件未上载”。
移动到评论问。
我正在尝试上载文件,但无法工作: 有用信息:运行IIS Express(使用PHP5.3)-Windows 7 Professional 32位 代码: move_uploaded_file($_FILES[图像][名称],/图像/。$_FILES["Imagem"]["name"])或die("Error:".print_r($_FILES)); 它打印:数组([imagem]= 我确信路径是正
在使用文件上传HTML表单和一些PHP来处理输入时,我感到困惑。在表格中,我为图像选择了两个文件。上载.png文件时,我可以使用$\u文件获取文件大小等信息。但是,当我试图上传一个.jpg文件时,我无法获得比文件名更多的信息,没有大小、类型、临时名称。 当同时上传两个文件时,. png和. jpg,一切都适用于. png文件,但不适用于. jpg。 我错过了什么?在使用带有.jpg文件类型的$\u
类型DiskFileUpload中的方法ParserRequest(HttpServletRequest,int,long,String)不适用于参数(HttpServletRequest) 当我以服务器的身份运行时...它会在控制台出现错误 这是我在此代码中的代码出错,因为类型DiskFileUpload中的方法parseRequest(HttpServletRequest,int,long,S
本文向大家介绍PHP 处理文件上传错误,包括了PHP 处理文件上传错误的使用技巧和注意事项,需要的朋友参考一下 示例 该$_FILES["FILE_NAME"]['error'](其中"FILE_NAME"是文件输入,存在于你的表单的名称属性的值)可能包含以下值之一: UPLOAD_ERR_OK -没有错误,文件上传成功。 UPLOAD_ERR_INI_SIZE-上载的档案超过中的upload_m
问题内容: 我有一个表单(HTML,PHP),允许最终用户上传文件,以使用上传文件(特别是.csv)中的记录来更新数据库(MySQL)。但是,在phpscript中,我只能获取文件名,而不能获取特定文件的完整路径。由于这个原因,fopen()失败。谁能让我知道如何找到完整的路径? HTML代码: PHP脚本: 问题答案: 引用 客户端 上的文件名。要在 服务器端 获取文件名(包括完整路径),您需要
我有一个表格,可以很好地上传很多图像文件,大小也不一样。 但是有些图像没有上传到服务器。 问题图像具有空的$\u文件[name][tmp\u name]和$\u文件[name][error]==8 同时其他图像(文件大小较大或较小)正确上传。 你有什么想法吗? 谢谢