这篇文章主要介绍了关于php文件上传及uploadifive的基本使用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
本篇对 不使用框架实现php上传 和 使用uploadifive框架进行了小结
不使用框架实现文件上传简单看了下菜鸟教程上的demo
文件结构如下图
form.html
<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>
最基本的表单,不多说
upload_file.php
//允许上传的图片后缀
$allowedexts = array("gif","jpeg","jpg","png","doc");
$temp = explode(".",$_files["file"]["name"]);
echo $_files["file"]["size"];
$extension = end($temp);
if((($_files["file"]["type"] == "images/gif")
||($_files["file"]["type"] == "image/jpeg")
||($_files["file"]["type"] == "image/jpg")
||($_files["file"]["type"] == "image/pjpeg")
||($_files["file"]["type"] == "image/x-png")
||($_files["file"]["type"] == "image/png")
||($_files["file"]["type"] == "application/msword"))
&&($_files["file"]["size"] < 204800)
&& in_array($extension,$allowedexts)){ if($_files["file"]["error"] > 0){
echo "错误:: ".$_files["file"]["error"]."<br>";
}else{
echo "上传文件名: ".$_files["file"]["name"]."<br>";
echo "文件类型: ".$_files["file"]["type"]."<br>";
echo "文件大小: ".($_files["file"]["size"]/1024)."kb<br>";
echo "文件临时存储的位置: ".$_files["file"]["tmp_name"]."<br>"; //判断当前目录下的upload目录是否存在
//如果没有upload目录, 你需要创建它,upload目录权限为 777
if(file_exists("upload/".$_files["file"]["name"])){
echo $_files["file"]["name"]."文件已经存在。";
}else{
//如果upload 目录不存在该文件则将文件上传到upload目录上s
move_uploaded_file($_files["file"]["tmp_name"],"upload/".$_files["file"]["name"]);
echo "文件存储在: "."upload/".$_files["file"]["name"];
}
}
}else{
echo "非法的文件格式";
}
也很好理解,核心函数只有一个move_uploaded_file(),其它的代码都是些为筛选做准备的语句,也很容易理解。
方法介绍bool move_uploaded_file ( string $filename , string $destination )
作用:
将上传文件移动到新的位置。本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 php 的 http post 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
参数介绍:
$filename:上传文件的文件名
$destination:移动文件到这个位置
使用uploadifive框架实现文件上传引入所需要的框架文件
<script src="../js/jquery-3.3.1.min.js" type="text/javascript"></script>
<script src="jquery.uploadifive.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="uploadifive.css">
jquery和uploadifive的相关文件,没有可去官网下载或者找demo中文件。
创建表单
<form>
<p id="queue"></p>
<input id="file_upload" name="file_upload" type="file" multiple="true">
</form>
在js中使用框架
<script type="text/javascript">
<?php $timestamp = time();?>
$(function () {
$('#file_upload').uploadifive({
'auto' : true,
//是否自动上传,默认true
'checkscript' : '\.\/js\/uploadify\/check-exists.php', //检查文件路径
'formdata' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt'.$timestamp);?>',
},
'oninit' : function(){
$('p.uploadifive-button').show();
},
'queueid' : 'queue', //进度条的显示位置
'uploadscript' : 'demo\/uploadifive.php', //上传路径脚本
'onuploadcomplete' : function(file,data){ //文件上传成功后执
// console.log(file);
},
'onerror' : function(errortype) {
console.log(errortype);
var msg = '文件上传有误';
switch(errortype) {
case 'forbidden_file_type':
msg = '错误的上传文件类型';
break;
}
alert('错误提示: ' + msg);
}
});
}); </script>
本例子只使用了最基本一些属性,实现了基本的上传功能
相关推荐:
php文件上传基础入门
php文件上传类及php封装的多文件上传类分享
以上就是php文件上传及uploadifive的基本使用的详细内容。