关于php文件上传的代码,自己还是找了蛮久的,也学了一些,这里给出一个代码可以直接用的:上传文件->把文件从临时目录中移动到指定目录,然后为了不重复,把名字改一下(加上time函数)。
废话少说 ,上代码:
前端:
<html>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
后端php代码:
<?php
print_r($_FILES);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 700000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
// if (file_exists("upload/" . $_FILES["file"]["name"]))
// {
//// echo $_FILES["file"]["name"] . " already exists. ";
//// }
//// else
// {
//rename($_FILES["file"]["tmp_name"]."/".$_FILES["file"]["name"],$_FILES["file"]["tmp_name"]."/".time().$_FILES["file"]["name"]);//修改文件名
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" .time(). $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" .time(). $_FILES["file"]["name"];
}
}
//}
else
{
echo "Invalid file";
}
?>
当然了,有时候会遇到一些错误的信息:
错误信息说明
从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的 error 字段中被找到,也就是
$_FILES['userfile']['error']。
UPLOAD_ERR_OK
其值为 0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
其值为 3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE
其值为 4,没有文件被上传。
UPLOAD_ERR_NO_TMP_DIR
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
UPLOAD_ERR_CANT_WRITE
其值为 7,文件写入失败。PHP 5.1.0 引进。
注: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。