jQuery.Form上传文件操作


Posted in Javascript onFebruary 05, 2017

建立test文件夹

PHP代码:

<?php
//var_dump($_FILES['file']);exit;
if(isset($_GET['option']) && $_GET['option']=='delete'){
 @file_put_contents(dirname(__FILE__)."/------------0.txt", $_GET['path']."\r\n",FILE_APPEND);
 unlink($_GET['path']);
 $rs[] = array(
  'success'=>true,
  'info'=>'ok'
 );
 if(file_exists($_GET['path'])){
  $rs[]['success']=false;
  $rs[]['info']='未删除';
 }
 die(json_encode($rs));
}
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < (1024*1024)))
{
 if ($_FILES["file"]["error"] > 0)
 {
  echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
 }
 else
 {
  if (file_exists("test/" . $_FILES["file"]["name"]))
  {
   $fn = $_FILES["file"]["name"];
  }
  else
  {
   $imgurl = substr($_FILES["file"]["name"], strpos($_FILES["file"]["name"], '.'));
   $imgurl = date("YmdHis",time()).$imgurl;
   move_uploaded_file($_FILES["file"]["tmp_name"],"test/" . $imgurl);
   $fn = "test/" . $imgurl;
  }
 }
 $return_str[] = array(
  'guid'=>date('His',time()),
  'path'=>'test/',
  'fileName'=>$fn,
  'success'=>true
 );
}
else
{
 $return_str[] = array(
  'guid'=>date('His',time()),
  'path'=>'test/',
  'fileName'=>$_FILES["file"]["name"],
  'success'=>false,
  'error'=>$_FILES["file"]["error"]
 );
}
 echo json_encode($return_str); 
?>

HTML代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />
 <title>文件上传</title>
 <style type="text/css">
  .btn {
   position: relative;
   background-color: blue;
   width: 80px;
   text-align: center;
   font-size: 12px;
   color: white;
   line-height: 30px;
   height: 30px;
   border-radius: 4px;
  }
   .btn:hover {
    cursor: pointer;
   }
   .btn input {
    opacity: 0;
    filter: alpha(opacity=0);
    position: absolute;
    top: 0px;
    left: 0px;
    line-height: 30px;
    height: 30px;
    width: 80px;
   }
  #fileLsit li span {
   margin-left: 10px;
   color: red;
  }
  #fileLsit {
   font-size: 12px;
   list-style-type: none;
  }
 </style>
</head>
<body>
 <div class="btn">
  <span>添加附件</span>
  <!--这里注意:file 标签必须具有name属性,由于没有加name属性,文件上传不到服务到哪-->
  <input type="file" id="fileName" name="file" />
 </div>
 <ul id="fileLsit" style="border:1px solid red;">
 </ul>
 <!--引入jquery类库-->
 <script type="text/javascript" src="js/jquery.js"></script>
 <!--引入jquery.form插件-->
 <script type="text/javascript" src="js/jquery.form.js"></script>
 <script type="text/javascript">
  jQuery(function () {
   var option =
    {
     type: 'post',
     dataType: 'json', //数据格式为json
     resetForm: true,
     beforeSubmit: showRequest,//提交前事件
     uploadProgress: uploadProgress,//正在提交的时间
     success: showResponse//上传完毕的事件
    }
   jQuery('#fileName').wrap(
    '<form method="post" action="test.php" id="myForm2" enctype="multipart/form-data"></form>');
   jQuery('#fileName').change(function () {
    $('#myForm2').ajaxSubmit(option);
   });
  });
  //删除文件
  var deleteFile = function (path, guid) {
   console.log(path+'/'+guid);
   jQuery.getJSON('test.php?option=delete', { path: path }, function (reslut) {
    console.log(path+'/'+guid+''+reslut[0].info);
    if (reslut[0].success) {//删除成功
     jQuery('#' + guid).remove();
     console.log('删除成功');
    } else {//删除失败
     alert(reslut[0].info);
    }
   });
   console.log('end');
  }
  //上传中
  var uploadProgress = function (event, position, total, percentComplete) {
   jQuery('.btn span').text('上传中...');
  }
  //开始提交
  function showRequest(formData, jqForm, options) {
   jQuery('.btn span').text('开始上传..');
   var queryString = $.param(formData);
  }
  //上传完成
  var showResponse = function (responseText, statusText, xhr, $form) {
   console.log(responseText);
   if (responseText[0].success) {//成功之后返回文件地址、文件名称等信息 拼接呈现到html里面。
    var str = '<li id="' + responseText[0].guid + '"><a href="' + responseText[0].fileName + '" target="_blank">' + responseText[0].fileName + '</a><span onclick="deleteFile(\'' + responseText[0].fileName + '\',\'' + responseText[0].guid + '\')" >删除</span></li>';
    jQuery('#fileLsit').append(str);
   }
   jQuery('.btn span').text('上传完成');
   jQuery('.btn span').text('添加附件');
  }
 </script>
</body>
</html>

以上所述是小编给大家介绍的jQuery.Form上传文件操作,希望对大家有所帮助,如果大家有任何疑问欢迎给留言,小编会及时回复大家的!

Javascript 相关文章推荐
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
Jquery异步请求数据实例代码
Dec 28 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
浅谈JavaScript事件的属性列表
Mar 01 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
基于Vue单文件组件详解
Sep 15 Javascript
对于input 框限定输入值为浮点型的js代码
Sep 25 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
详解JavaScript 作用域
Jul 14 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 #Javascript
用jquery的attr方法实现图片切换效果
Feb 05 #Javascript
JavaScript编写九九乘法表(两种任选)
Feb 04 #Javascript
JS动态生成年份和月份实例代码
Feb 04 #Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
Feb 04 #Javascript
js常用DOM方法详解
Feb 04 #Javascript
JavaScript数组操作详解
Feb 04 #Javascript
You might like
php miniBB中文乱码问题解决方法
2008/11/25 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
Three.js基础学习教程
2017/11/16 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
vue实现分页加载效果
2019/12/24 Javascript
Python的装饰器使用详解
2017/06/26 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
python yield和Generator函数用法详解
2020/02/10 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
简历自荐信
2013/12/02 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
自主招生推荐信范文
2014/05/10 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
开学第一周值周总结
2015/07/16 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers