设为首页 收藏本站
查看: 413|回复: 0

[经验分享] php实现文件上传的例子(附详细源码)

[复制链接]

尚未签到

发表于 2017-4-8 12:42:15 | 显示全部楼层 |阅读模式
  今天用PHP做了个文件上传工具,功能还是很完善滴,如下:
DSC0000.jpg

  每个图片上传之后,都有自己的地址,改变原图位置或重命名时,将不会重复上传。

  一、功能:
  A:文件分类上传
  B:生成相应的文件夹,如本例,选择团,生成文件夹tuan
  C:点击图片,查看详细
  二、HTML代码:

<div id="container">
<fieldset>
<legend class="img"><img width="100%" src="css/logo.png" /></legend>
<form action="" method="post" name="myform" id="myform"  enctype="multipart/form-data">
<strong>亲,请选择你要上传的文件</strong>
<div class="file"><input type="file" id="fileToUpload" name="fileToUpload" /></div>
<select id="product">
<option value="" <?php if(empty($pname)){ echo "selected" ;} ?> >请选择产品</option>
<option value="tuan" <?php if($pname == '2000tuan'){ echo "selected" ;} ?> >团</option>
</select>
<button id="postBtn" >Submit</button>
</form>
<div id="info"></div>
<div style="position:relative; top:40px; left:20px;">
<a id="loading" style="display:none"><img width="10%" src="css/loading.gif" /></a>
</div>
<a href="#" id="img_link" target="_blank">
<div id="img_url">buding</div>
<br/>
<img class="preview" id="preview" src="" style="display:none;margin:0 auto" />
</a>
</fieldset>
</div>
  三、Javascript代码:

<script type="text/javascript">
$('#postBtn').click(function(){
$('#preview').hide();
$('#img_url').hide();
$('#loading')
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
if($('#fileToUpload').val() == ""){
$('#info').html("亲,还没选择文件呢");
var jObject={"Url":"","Height":413};
var jString=JSON.stringify(jObject);
window.parent.postMessage(jString,'*');
return false;
}
if($('#product').val() == ""){
$('#info').html("亲,还没选择产品呢");
$('#info').css("color","#e9af32");
var jObject={"Url":"","Height":413};
var jString=JSON.stringify(jObject);
window.parent.postMessage(jString,'*');
return false;
}
var val = $('#product').val();
$.ajaxFileUpload({
url:'ajaxupload.php',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'text',
data:{product:val},
success: function (data, status)
{
if(data.search(/http:\/\//i) < 0 ){
$('#info').html(data);
var jObject={"Url":"","Height":413};
var jString=JSON.stringify(jObject);
window.parent.postMessage(jString,'*');
}else{
$('#info').html("您上传的文件为:<br/>");
$('#preview').attr("src",data);
$('#img_link').attr("href",data);
$('#img_url').html(data);
$('#preview').show();
$('#img_url').show();
$('#preview').load(function(){
var imgH=$('#preview').height();
var jObject={"Url":data,"Height":imgH+228,"oid":"<?php echo @$_REQUEST['oid']; ?>"};
var jString=JSON.stringify(jObject);
window.parent.postMessage(jString,'*');
});
}
},
error: function (data, status, e){
$('#info').html(data+e);
}
});
});
</script>
  四、PHP代码

<?php
require_once('config.php');
if(empty($_FILES) || empty($_REQUEST)){
header('location:imgupload.php');
exit;
}
array_push($_FILES, $_REQUEST);
$filename = 'fileToUpload';
$product = @$_FILES[0]['product'];
$today = date("Y-m-d");
$time = date("YmdHis");
$year = date("Y");
$month = date("m");
$day = date("d");
$img_path = $product.'/'.$year.'/'.$month.'/'.$day.'/';
$destination_dir = ROOT_PATH.'/pic/'.$img_path.'/';
if(!is_uploaded_file($_FILES[$filename]['tmp_name'])){//验证上传文件是否存在
echo "请选择你想要上传的图片";
exit;
}
if($product == "") {//选择产品
echo "请选择产品";
exit;
}
$files = $_FILES[$filename];
if($max_file_size < $files['size']){//判断文件是否超过限制大小
echo "图片太大了,传个小点的吧(<=2MB)";
exit;
}
if(!file_exists($destination_dir)) {//判断上传目录是否存在,不存在则创建一个.
if(!mkdir($destination_dir,0777,true)) {
echo "创建目录 {".$destination_dir."} 失败<可能是权限问题>";
exit;
}
}
$type = pathinfo($files['name']);
$type = strtolower($type["extension"]);
$type =".".$type;
$tmp_name = $files['tmp_name'];
$md5file = md5_file($tmp_name);//生成md5文件
$new_name =$md5file.$type;
$img_relat_path = $img_path.$new_name;
$img_abs_path =$destination_dir.$new_name;
$url = IMG_URL.$img_relat_path;
//判断数据库中图片是否存在
$sql="select url from file_url where md5 = '".$md5file."'";
$res=$db->getOne($sql);
if($res) {
echo $res['url'];
exit;
}      
if(!move_uploaded_file ($files['tmp_name'], $img_abs_path)) {//上传文件
echo "上传文件失败";
exit;
}
//将图片存入数据库      
$sql="insert into file_url(url,product,md5,create_time) values('".$url."','".$product."','".$md5file."','".$today."')";
$db->Execute($sql);
$db->CloseDB();
echo $url;
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361981-1-1.html 上篇帖子: 最简单的php二级域名配置 下篇帖子: PHP If Else(elsefi) 语句(入门很不错)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表