if (request_is_post()){$uploader = new Helper_Uploader();          $allFiles=$uploader->allFiles();if (count($allFiles)>0){foreach ($allFiles as $file){/* @var  $file Helper_Uploader_File */$file_name = $file->filename();//文件的后缀名$file_type = $file->extname();//不包含后缀的文件名$file_front = basename($file_name,'.'.$file_type);$waybill = Waybill::find('waybill_code = ?',$file_front)->getOne();if($waybill->waybill_id!=null){$waybill_id = $waybill->waybill_id;}else {                       return $this->_redirectMessage("扫描文件".$file_front."上传失败! 6秒中之后将自动跳回... ...","上传扫描件失败! 运单表中无对应文件名为 ".$file_front." 的主运单号!", url("scannedmanage/index") ,6);}//文件上传路径$uploadtmp_dir = _INDEX_DIR_.'/public/upload/scanningcopy/';Helper_Filesys::mkdirs($uploadtmp_dir);$fullname = $uploadtmp_dir . $file_name;$file->move($fullname);//数据保存到数据库$files = new File();$files->waybill_id = $waybill_id;$files->file_name = $file_name;$files->file_path = $uploadtmp_dir;$files->operator = "Alan";$files->remark = request('remark');$files->save();}return $this->_redirect(url("scannedmanage/index"));}else {return $this->_redirect(url("scannedmanage/index"));}}

客户端页面写法:

<form action="<?php echo url('scannedmanage/upload2');?>" method="post" enctype="multipart/form-data"><label>备注:</label><input type="text" name="remark" id="remark" /><label>选择文件:</label><div><input type="text" name="filepath" id="filepath"><?php echo Q::control('upload', 'files[]', array('multiple'=>'multiple','accept'=>'image/*'))?></div><input type="submit" class="btn" name="submit" value="上传"onclick="return doFormCheck();" />
</form>

说明:注意QeePHP框架自带的upload组件中关于支持多文件上传和只接受图片的写法!还有一点就是组件的name要为数组类型的,如此处的files[ ]!

拖拽上传多个文件:

客户端页面直接将要上传限定的区域包含到一个id名为dropArea的div中即可!

脚本部分:

<script type="text/javascript">
/*** 拖动事件*/
var dropHandler = function(e) {fileList = e.dataTransfer.files;for(var i=0;i<fileList.length;i++){if (fileList.length == 0) {return;}if (fileList[i].type.indexOf('image') === -1) {alert("请上传图片格式文件");return;}var xhr = new XMLHttpRequest();var upload = xhr.upload;upload.addEventListener("load", uploadSucceed, false);xhr.open("post",'<?php echo url('scannedmanage/upload1')?>&file_name=' + fileList[i].name, true);xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; boundary=' + new Date().getTime());xhr.send(fileList[i]);}
};/*** 拖动后刷新页面*/
function uploadSucceed(event) {window.location.reload();
}
</script>

注意部分:下述一行Ajax请求代码,我原以为在QeePHP框架中通过控制器、动作这种构成路径的形式是传不到数据到指定的控制器方法中的,以为得采用绝对路径的方式来指定到具体路径下的页面,但是实际的情况是,这种写法同样能传递数据到目标文件!

xhr.open("post",'<?php echo url('scannedmanage/upload1')?>&file_name=' + fileList[i].name, true);

转载于:https://my.oschina.net/zhouyang2021/blog/376521

QeePHP中上传多个文件的基础写法相关推荐

  1. java上传和下载文件代码_JavaWeb中上传和下载文件实例代码

    一丶先引入上传下载的lib 二丶上传的的servlet package com.test.action; import java.io.file; import java.io.fileoutputs ...

  2. domino中上传控件文件拆离的LS代码

    domino中上传控件文件拆离的LS代码 Dim inputAttachment As NotesEmbeddedObject  Dim v_files As Variant    v_files = ...

  3. dropwizard中上传和下载文件

    传输格式基础知识 MIME 类型 MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准. MIME 消息能包含文本.图像.音频.视频 ...

  4. Spring MVC 3:上传多个文件

    只是在办公室又漫长的一天,数据库不可用,一个团队成员现在滞后一周. 因此,我们必须作为一个团队来交付它. 在Spring3,它看起来很直接上传文件. 但是,从jsp文件上载多个文件几乎没有帮助. 上载 ...

  5. 随便说说:在ASP.NET应用程序中上传文件

    在Web程序中上传文件是很常见的需求.利用HTTP协议上传文件的方式非常有限,最常见的莫过于使用<input type="file" />元素进行上传.这种上传方式会将 ...

  6. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  7. 织梦后台上传文章的php文件是那个,如何在织梦文章中上传视频及调用视频

    在上一篇文章中,我弄好了zblog如何在文章中上传视频和调用视频,那么因为我有很多个站,所以,这篇文章研究一下如何在织梦系统的文章中进行上传视频和调用视频,上传视频的话,一般推荐直接FTP传到自己的服 ...

  8. ASP.NET中上传下载文件

    ASP.NET中上传下载文件 //检查上传文件不为空 if(File1.PostedFile!=null) { stringnam=File1.PostedFile.FileName; //取得文件名 ...

  9. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

最新文章

  1. webview加载本地html_安卓webview html5 自动播放本地视频,网上视频,可以循环播放...
  2. Linux文件系统简介及常用命令
  3. VALSE Webinar 20-29期 图文并茂, 让视觉与语言相得益彰
  4. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理
  5. 60道Python面试题答案精选!找工作前必看
  6. 利用java实现android项目结构API文档
  7. kvmweb管理工具_KVM的web管理界面
  8. Windows平台RTMP|RTSP播放器为什么要兼容GDI绘制
  9. java memcmp_C 库函数
  10. 源代码安装apache遇到的问题解决
  11. 题目1439:Least Common Multiple
  12. linux查看文件标签,linux下不解包查看tar包文件内容
  13. 简单PHP留言板之二 —— PHP的数据库连接文件
  14. c# json转对象
  15. Windows环境下载安装Redis图文教程(亲测有效)
  16. web前端面试题【html+css+js+框架】
  17. 计算机二级保存错地方,盘点考计算机二级那些容易出错的地方
  18. 阿里天池大数据竞赛——口碑商家客流量预测 A2
  19. 爱奇艺又涨价?注定想追剧就要成为SSSSVIP
  20. python3遍历目录查找文件

热门文章

  1. idea创建多个maven项目java文件夹不是绿色
  2. 北京工商大学计算机软件技术基础课件,《智能科学与技术专业发展问题》 课件.ppt...
  3. 亚马逊的四大商业理念
  4. qt调用linux系统调用,qt在其他函数调用数据库
  5. Oracle12c新特性大全 存储资源隔离+flex+diskgroup
  6. 1、FlashTsDB时序数据库介绍
  7. 宁夏2018年进出口总值249.2亿元
  8. linux下最好用的视频播放器,mplayer,smplayer怎么安装 播放黑屏
  9. 数字信号处理matlab心得,数字信号处理学习心得体会3篇
  10. CF1634E Fair Share