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 表格工具集
Apr 25 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
js实现有趣的倒计时效果
Jan 19 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
php生成无限栏目树
2017/03/16 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
一些不错的js函数ajax
2008/08/20 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
django的model操作汇整详解
2019/07/26 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
英文版银行求职信
2013/10/09 职场文书
争论的故事教学反思
2014/02/06 职场文书
五年级学生评语
2014/04/22 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
商务邀请函
2015/01/30 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Python实现学生管理系统(面向对象版)
2021/06/24 Python