您的位置:首页 > 编程语言 > PHP开发

php上传文件

2014-03-15 13:32 375 查看
1、首先,建立一个html的表单页面(名字自定义)

<!-- <form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,
比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,
会看到输入框旁边有一个浏览按钮。

注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
-->

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">文件:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="提交" />
</form>

</body>
</html>


2、然后在同一个目录下面建立一个upload的文件夹

3、建立upload_file.php 文件

<?php

$type=array('.txt','.rtf','.doc','.docx','.xls','.xlsx','.ppt','.pptx','.jpg','.jpeg','.png','.bmp','.png','.zip','.rar','.7z','.tar','.gz','.tar.gz');

if ((($_FILES["file"]["type"] == "image/gif")	//文件类型
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "application/x-zip-compressed")
|| ($_FILES["file"]["type"] == "image/pjpeg"))     //存储在服务器的文件的临时副本的名称
//||
&& ($_FILES["file"]["size"] < 200000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "文件名: " . $_FILES["file"]["name"] . "<br />";
echo "类型: " . $_FILES["file"]["type"] . "<br />";
echo "文件大小: " . ($_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"] . " 文件已经存在. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "无效文件";
}
?>


这里只是可以上传图片和zip格式的文件。。。

注释:可以根据下面的提示自己完善代码,补全各种文件类型的代码!

php上传图片文件(gif,jpg,bmp,png,psd,ico)
php上传压缩文件(rar,7z,zip)
php上传可执行文件(exe)
php上传视频文件,音乐文件,歌词文件(avi,rmvb,3gp,flv,mp3,wav,krc,lrc)
php上传文本文件和文档文件(word->doc,excel->xls,幻灯片->ppt,pdf,chm)
php上传数据库文件(access文件,sql文件,con文件,日志文件log, dat文件)
php上传网页文件,脚本文件,字体文件(ini,php,html,htm,字体文件:ttf,fon,
js ,xml)
php上传其他文件(class类文件,dll动态加载库文件)

            IE下
id后缀名php识别出的文件类型
0gifimage/gif
1jpgimage/jpeg
2pngimage/png
3bmpimage/bmp
4psdapplication/octet-stream
5icoimage/x-icon
6rarapplication/octet-stream
7zipapplication/zip
87zapplication/octet-stream
9exeapplication/octet-stream
10avivideo/avi
11rmvbapplication/vnd.rn-realmedia-vbr
123gpapplication/octet-stream
13flvapplication/octet-stream
14mp3audio/mpeg
15wavaudio/wav
16krcapplication/octet-stream
17lrcapplication/octet-stream
18txttext/plain
19docapplication/msword
20xlsapplication/vnd.ms-excel
21pptapplication/vnd.ms-powerpoint
22pdfapplication/pdf
23chmapplication/octet-stream
24mdbapplication/msaccess
25sqlapplication/octet-stream
26conapplication/octet-stream
27logtext/plain
28datapplication/octet-stream
29iniapplication/octet-stream
30phpapplication/octet-stream
31htmltext/html
32htmtext/html
33ttfapplication/octet-stream
34fonapplication/octet-stream
35jsapplication/x-javascript
36xmltext/xml
37dllapplication/octet-stream
38dllapplication/octet-stream
Firefox下   
id后缀名php识别出的文件类型
0gifimage/gif
1jpgimage/pjpeg
2pngimage/x-png
3bmpimage/bmp
4psdapplication/octet-stream
5icoimage/x-icon
6rarapplication/octet-stream
7zipapplication/x-zip-compressed
87zapplication/octet-stream
9exeapplication/octet-stream
10avivideo/avi
11rmvbapplication/vnd.rn-realmedia-vbr
123gpapplication/octet-stream
13flvapplication/octet-stream
14mp3audio/mpeg
15wavaudio/wav
16krcapplication/octet-stream
17lrcapplication/octet-stream
18txttext/plain
19docapplication/msword
20xlsapplication/vnd.ms-excel
21pptapplication/vnd.ms-powerpoint
22pdfapplication/pdf
23chmapplication/octet-stream
24mdbapplication/msaccess
25sqltext/plain
26conapplication/octet-stream
27logtext/plain
28dattext/plain
29iniapplication/octet-stream
30phpapplication/octet-stream
31htmltext/html
32htmtext/html
33ttfapplication/octet-stream
34fonapplication/octet-stream
35jstext/html
36xmltext/xml
37dllapplication/octet-stream
38classapplication/java
当然要根据自己浏览器的类型选择不同的方式,不同的浏览器内核有不同(基本是IE和火狐两种),后续还会有详细内容。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息