今天用PHP做了个文件上传工具,功能还是很完善滴,如下:
每个图片上传之后,都有自己的地址,改变原图位置或重命名时,将不会重复上传。
一、功能:
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" onsubmit="return false" 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;
?>
分享到:
相关推荐
在"silverlight 文件上传例子(附源码)"中,我们可以学习到以下几个关键知识点: 1. **Silverlight控件**:首先,你需要在XAML文件中定义一个Silverlight控件,这个控件通常会包含一个或多个输入元素,如`...
本文将围绕"PHP编程的几十个例子 (附图片+源码)"这个主题,深入探讨PHP5与MySQL开发技术中的关键知识点。 首先,PHP5是PHP语言的一个重要版本,它引入了许多新特性和改进,比如对象模型的增强、错误处理机制的改进...
如果博客允许用户上传图片或附件,源码中会包含文件上传的处理逻辑,包括文件类型检查、大小限制、重命名和保存路径等。 8. URL路由: 为了创建友好的URL,源码可能会包含URL路由规则,将用户请求映射到对应的...
【标题】"基于PHP的在线文档管理系统源码.zip"是一个包含源代码的压缩包,它提供了用PHP语言构建的在线文档管理系统的实现。这个系统旨在帮助用户存储、组织、搜索和共享各种类型的文档,实现云端的文档管理和协作。...
本示例提供了PHP经典...这个经典的PHP文件上传示例提供了完整的文件上传流程,可以帮助开发者理解和实现自己的文件上传功能。在实际项目中,可以根据需求进行定制和扩展,例如添加数据库记录、设置不同的权限控制等。
Android应用源码实现动态交叉布局.rar Android应用源码小说翻页效果源码.rar Android应用源码广告轮播效果源码.rar Android应用源码强大的统计图表库.rar Android应用源码微享,微信分享实例.rar Android应用源码有...
我们可以通过博客链接(虽然这里提供的链接不可点击,但通常这类链接会指向一个详细的技术解释)来了解实现文件上传的具体步骤和技术。标签“源码”和“工具”提示我们,这可能涉及到具体的编程代码和可能使用的辅助...
在本压缩包“PHP实例开发源码—PHP+Ajax无刷新文件上传代码.zip”中,包含了一个使用PHP和Ajax技术实现的无刷新文件上传的示例。这种技术的应用旨在提高用户体验,用户可以在不刷新整个页面的情况下完成文件上传,极...
PHP实现多文件上传功能需要对`$_FILES`全局数组有深刻理解,能够合理地处理多文件上传中的各种逻辑,包括但不限于文件信息的构建、上传错误处理、文件类型和大小的校验、文件真实性的验证,以及文件的最终保存等。...
使用flash结合php上传文件的例子,原理很简单,看一下源码就知道了,使用传统的html,要达到ajax效果,需要编写一堆的js代码,而且兼容性比较差,用flash结合php,很容易就可以做出来,而且上传控件可以自己随意去...
后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要去发送邮箱 只要填固定验证码 php7.0 mysql5.6+ 导入数据库 修改数据库文件config.php 后台...
3. **文件与目录操作**:包括读写文件、目录管理、上传下载等功能的实现。 4. **错误与异常处理**:理解如何捕获并处理运行时错误和异常,以确保程序的健壮性。 5. **会话管理**:用于跟踪用户状态,例如登录状态...
这里我们主要探讨的是使用易语言实现POST文件上传的例子。易语言是一种中国本土开发的、以中文编程为特色的编程语言,旨在降低编程难度,让更多人能够参与到编程中来。 POST文件上传通常涉及到客户端(用户端)与...
【标题】中的“一套基于PHP+MYSQL实现支持动态、伪静态、生成HTML模式的七夜图片管理系统源码”指的是一个开源的图片管理系统,它利用PHP编程语言与MySQL数据库相结合,构建了一个功能完善的平台。该系统具备动态...
由于是单文件版本,用户只需将这个PHP文件上传到支持PHP的服务器上,即可开始使用,无需安装额外的软件或配置复杂的环境。 【标签】"PHP"表明这个工具的核心是PHP编程语言,PHP是一种广泛使用的开源脚本语言,尤其...
例如,你可以看到如何使用PHP连接数据库并执行SQL查询,如何创建动态网页,如何使用PHP处理表单数据,以及如何实现文件上传下载功能等。这些实践性的例子对于提升编程能力至关重要。 在学习过程中,【京华志】的这...
表单提交后,PHP将处理文件上传。 在PHP部分,首先检查请求方法是否为POST,这表明表单已经提交。接着,使用 `is_uploaded_file()` 检查文件是否已成功上传到临时目录。如果文件不存在,会显示错误信息并结束脚本。...
4. PHP文件系统操作:PHP可以用来读写文件、目录操作、文件上传下载等。源码中可能会涉及这些功能的实现,让你掌握文件系统编程的基本技能。 5. PHP表单处理:Web开发中,表单处理是必不可少的一部分。源码可能会...
9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解...