一、普通文件上传方式
使用原生态的php上传文件。
(1)前端代码
<form action="upload_file.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>
(2)php代码(upload_file.php)
<?php
if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)){
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{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}else {
echo "Invalid file";
}
?>
二、异步文件上传方式
目的是尽量少使用插件。于是使用iframe异步上传文件
(1)前端html
<form id="upForm" action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" >
导入文件:<input type="file" name="myfile" id="myfile" />
<input type="submit" name="submitBtn" value="导入" />
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
<span id="info"></span>
function startUpload() {
var spanObj = document.getElementById("info");
spanObj.innerHTML = " 开始上传";
document.getElementById("upForm").sumbit();
}
//回调
function stopUpload(responseText){
var spanObj = document.getElementById("info");
spanObj.innerHTML = "上传成功";
spanObj.innerHTML = responseText;
}
(2)服务器端代码
$file = $_FILES['myfile'];
$fileName = uploadFile($file);
//$result = readFromFile("../upload/" . $fileName);
echo "<script type='text/javascript'>window.top.window.stopUpload('{$fileName}')</script>";
function uploadFile($file) {
// 上传路径
$destinationPath = "../upload/";
if (!file_exists($destinationPath)){
mkdir($destinationPath , 0777);
}
//重命名
$fileName = date('YmdHis') . '_' . iconv('utf-8' , 'gb2312' , basename($file['name']));
if (move_uploaded_file($file['tmp_name'], $destinationPath . $fileName)) {
return iconv('gb2312' , 'utf-8' , $fileName);
}
return '';
}
//代码注释
/*
1,关于basename方法
$path = "/testweb/home.php";
//显示带有文件扩展名的文件名
echo basename($path);
//显示不带有文件扩展名的文件名
echo basename($path,".php");
2,关于iconv
iconv('gb2312' , 'utf-8' , $fileName);//将$fileName从gb2312转为utf-8格式。
注:该函数需要开启php.ini里面的php_iconv.dll
3,关于$_FILES['myfile']
$_FILES相当于一个二维数组,而$_FILES['myfile']相当于一个一维数组。所以可以
$f = $_FILES['myfile'];
echo $f['name'];
如果直接访问该$_FILES['myfile'],则会报Undefined index: myfile。此时加上
if(!isset($_FILES['myfile'])){
die('上传文件不存在!');
}
*/
分享到:
相关推荐
PHP文件上传类,自定义配置,包括单文件和多文件上传(检测文件大小,文件格式,文件重命名,错误返回,全部封装在一个类中)
php文件上传插件(简洁好用的上传插件)需要的赶快来下载
使用wamp集成工具,结合phpStrom写的PHP文件上传图片,上传后并在HTML页面上展示的例子
php文件上传函数,直接用就好了 觉得好用,就分享了
一个php文件上传处理类库
php文件上传进度条
php文件上传类,很简单的实例,是初学php的很好的参考资料
php文件上传代码
自己编写的php文件上传类,可以在配置文件中限制文件的数量、大小、目录和格式等等,在此分享给大家,希望能给我好的建议
强大的php文件上传类强大的php文强大的php文件上传类件上传类
PHP文件上传与下载学习笔记 PHP版本:1、文件上传配置 文件上传后,Php获取的上传文件的信息 PHP端config配置文件配置
PHP文件上传/PHP文件上传 PHP文件上传/PHP文件上传 PHP文件上传/PHP文件上传
uploaddify+php多文件上传,带进度条,经过自己测试,文件可以上传成功,可以进入uploaddify官网修改相关参数和代码,但在移动端似乎不能使用
php文件上传代码以及封装的上传类,<?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "<pre>"; print_r($_FILES); ...
通过php实现文件上传,可以将文件上传至服务器端
分享一个比较全面的php文件上传类,指定上传文件保存的路径,对上传文件初使化,查看用户参数中数组的下标是否和成员属性名相同。
PHP文件上传类源码PHP文件上传类源码
php文件上传类,能自定义上传文件类型,设置文件上传大小,能满足你所需求的
php文件上传,上传源码!~~php文件上传,上传源码!~~欢迎大家讨论
php文件上传类程序代码 public $max_size = '1000000';//设置上传文件大小 public $file_name = 'date';//重命名方式代表以时间命名,其他则使用给予的名称 public $allow_types;//允许上传的文件扩展名,不同...