今天产品有了一个提了一个新的需求:后台上传PDF文件

因为要的着急,所以老大直接给了我建议:使用PDFObject来实现前端的显示,后台上传文件想必大家都很熟悉了,就是跟上传图片额功能是一样的,完全不用修改

一、后台上传样式
<div class="div div7" style="width: 700px;">上传附件(PDF不得超过100M):<input type="file" name="files" class="join-num" id="attachement"  size="20"/><input type="button" class="btn" id="buttonUpload" onclick="ajaxFileUpload('attachement');" value="上传附件"/><span style="color:red">*</span><input type="text" name="downloadpath" id="downloadpath" value=""/><input type="hidden" name="filetype" id="filetype" value=""/></div>

运营直接点击上传附件就触发了上传的js以及后台请求,接下来就是后台接受请求,进行收到的文件处理并保存

二、后台PHP接收处理、保存文件

注:本人的PHP版本较低,处理代码仅供参考,但逻辑绝对没差

public function postIndex(){ini_set('max_execution_time',3600);$sTmpname = $_FILES['files']['tmp_name'];$sFilename = $_FILES['files']['name'];$sTime = time();$sFilesize = round(@filesize($sTmpname)/1024,2);$sError = '';if(!empty($_FILES['files']['error'])){switch($_FILES['files']['error']){case '1':$sError = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';   break;case '2':$sError = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';break;case '3':$sError = 'The uploaded file was only partially uploaded';break;case '4':$sError = 'No file was uploaded.';break;    case '6':$sError = 'Missing a temporary folder';break;case '7':$sError = 'Failed to write file to disk';break;case '8':$sError = 'File upload stopped by extension';break;case '999':default:$sError = 'No error code avaiable';}}elseif(empty($sTmpname) || $sTmpname == 'none'){$sError = 'No file was uploaded..';}elseif($sFilesize > 102400){$sError = '每份上传文件不能超过100M';}else{$aTypes = array('jpg','bmp','png','gif','doc','docx','xls','xlsx','pdf','zip','swf','flv');//***********上传类型$sFiletype = false;$sExt = explode(".",$sFilename); $sExt = array_pop($sExt);$sExt = strtolower($sExt);if(in_array($sExt,$aTypes)){$sFiletype = $sExt;}//递归创建目录if($sFiletype){$sPath = 'uploadfile/'.date('Y',$sTime).'/'.date('md',$sTime);$spptPath = '';//ppt保存路径if(in_array($sFiletype,array('ppt','pptx'))){$spptPath = 'uploadfile/ppt';//ppt保证能找到路径}$path = $sPath;$sPath = $this->publicpath.'/'.$sPath;mkdirs($sPath);//如果是ppt的话,创建ppt路径用于ppt转图片if($spptPath){$spptPath = $this->publicpath.'/'.$spptPath;mkdirs($spptPath);}//保存上传的图片$filename=date('YmdHis',$sTime).rand(1000,9999).'.'.$sFiletype;//生成文件名$file_allurl=$sPath.'/'.$filename;//保存文件的路径if(!move_uploaded_file($sTmpname,$file_allurl)){$sError = "failed to copy $file_backup...\n";}//拷贝ppt用以ppt2imgif($spptPath){$ppt_url = $spptPath.'/'.$filename;copy($file_allurl,$ppt_url);}//取得回传的文件信息(文件名称、类型)$url = $path.'/'.$filename;$sMsg = " File Name: " . $sFilename. ", ";$sMsg .= " File Size: " . $sFilesize.", ";$sType = $sFiletype;}else{$sError='文件类型错误!允许的文件类型: ';foreach($aTypes as $k=>$v){if($k==0) $sError.=$v;else  $sError.=','.$v;}}@unlink($_FILES['files']);}if(empty($_FILES['files']['error'])&&$sFiletype){$pptid = 0;if(in_array($sType,array('ppt','pptx'))){$aPpt = array('pptname'=>$sFilename,'newname'=>$filename);$oPpt = new Ppt($aPpt);$oPpt->save();$pptid = $oPpt->getKey();}$aAttachement = array('filename'=>$filename,'filepath'=>$url,'filetype'=>$sType,'filesize'=>$sFilesize,'created_at'=>$sTime);$oAttachement = new Attachement($aAttachement);$oAttachement->save();$fileid="";$aReturn_array = array("error"=>$sError,"id"=>$fileid,"msg"=>$sMsg,"ftype"=>$sType,"filesize"=>$sFilesize,"filename"=>$filename,"sourcename"=>$sFilename,"url"=>$url,'pptid'=>$pptid);}else{$aReturn_array = array("error"=>$sError);}return json_encode($aReturn_array);

这里是对于你可以用到的所有类型的文件处理,包含*‘jpg’,‘bmp’,‘png’,‘gif’,‘doc’,‘docx’,‘xls’,‘xlsx’,‘pdf’,‘zip’,‘swf’,‘flv’*这些也算比较完全了,这里可以好好研究一下哟

前两部是保存pdf的步骤,接下来就是PDF显示的分享了。
为了更详细的介绍,请移驾到下一篇,好好听我分享

下一篇:使用pdfobject.js实现在线浏览PDF–前端显示PDF

干货:使用pdfobject.js实现在线浏览PDF–前端显示PDF

干货:使用pdfobject.js实现在线浏览PDF–前端显示PDF

正事说完了,在这里帮忙宣传一个日用百货的店铺:‘我虽然资历尚浅,但质量绝对保证,价格绝对良心’
店铺名称:98K杂货店,点击进店铺,欢迎选购哟,说明了解来源可以优惠!!!

使用pdfobject.js实现在线浏览PDF--后台上传保存文件相关推荐

  1. 前端使用pdf.js插件在线浏览pdf

    vue中使用PDF.js_没理由的花呗的博客-CSDN博客_pdf.js vue 步骤 1.官网下载pdf.js插件放入一个公用方法文件夹中如utils 2.在需要使用的页面使用iframe标签 &l ...

  2. java 文件下载方法_【工具类】Java后台上传下载文件的几种方式

    /** * 将本地照片上传至腾讯云服务上 */ public void uploadImage(String localImagePath) throws Exception { // 1.将订单照片 ...

  3. 网站开发之ie下在线浏览pdf文件无需本地支持

    1.首先,务必通过后面给的链接了解一些可实现的方法:打开链接. 2.个人选择了PDFObject+PDF.js来实现,这里需要下载pdfobject.js和PDF.js.对于pdfobject.js, ...

  4. IE上在线浏览PDF

    工作中遇到在IE中,在线显示PDF的需求,项目采用的是SpringMvc. 这里有二种情况,一是在jsp中显示pdf,还有一种就是html中显示PDF.运用所遇到的问题是在html中显示PDF,针对I ...

  5. 8个实现在线浏览PDF文件的实用jQuery插件

    在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又 ...

  6. 微信公众号或者浏览器实现在线浏览pdf文件

    微信公众号或者浏览器实现在线浏览pdf文件 实现在线浏览pdf文件方法 开发步骤: 实现在线浏览pdf文件方法 我们在日常的开发当中经常需要实现pdf文件的显示,最近做了一个在微信公众号中实现pdf浏 ...

  7. WEB中使用viewer.js实现在线浏览Office文档

    1.如何使用ViewerJS 把ViewerJS放在你的网站很容易,花费的时间不会超过5分钟.ViewerJS是一个非常通用的文档查看器,驻留在您的web服务器本身. 运行ViewerJS一样简单的做 ...

  8. js上传超大文件解决方案

    需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...

  9. 网页扫描图像并以pdf格式上传到服务器端

    本文描述如何通过网页驱动扫描仪.高拍仪等图像扫描设备进行图像扫描,扫描结果经编辑修改后以pdf压缩格式上传到后台java程序中进行服务器端落盘保存. 图像扫描上传如文字描述顺序所介绍,先要驱动扫描设备 ...

  10. 上传视频文件到又拍云,jsp内嵌window media player在线播放

    上传视频文件到又拍云,jsp内嵌window media player在线播放 完成上述功能的后台路径 filePath.jsp(ajax)->UpYunController.java--> ...

最新文章

  1. 为什么只有很少的人听说过西工大这个名字?
  2. 正则控制可以输两位小数、负数,整数
  3. 美团都在用的实时应用监控平台,到底有多好用?
  4. web前端基础(03html列表知识)
  5. 前端 JS 之 AJAX 简介及使用
  6. echarts中矢量图片路径设置
  7. iOS底层探索之Runtime(一):运行时方法的本质
  8. 新媒体文章标题怎么写?
  9. 简易交通灯控制器Verilog
  10. 保研经历总结--天津大学
  11. springboot整合es实现聚合搜索(api搜索版)
  12. 笔记本w ndows未能启动,Windows未能启动原因可能是最近更改了硬件或软件解决方法...
  13. vb.net LPT端口 开钱箱和小票纸打印超时问题解决办法
  14. html字体怎么变大变粗,ppt如何加粗字体更粗 幻灯片的艺术字怎么把字体变粗?...
  15. Java学习---day07_继承及final、Object的介绍
  16. 谷歌浏览器如何正确安装第三方已被停用的扩展插件
  17. 洛谷:P1424 小鱼的航程(改进版) JAVA
  18. VS2017 安装 Microsoft Visual Studio Installer Project
  19. (二)基于数据库的认证与授权
  20. Linux中Python程序CPU占用高排查

热门文章

  1. ascii码01100001_【多选题】计算机中字符a的ASCII码值是(01100001)2,那么字符c的ASCII码值是( )。...
  2. 黑苹果 hackintosh 安装初体验
  3. PageHelper分页插件的简单使用
  4. [高西泉] 数字信号处理(第四版)程序集
  5. 电商有关淘宝天猫突破限制的解决办法
  6. Linux运维04:vmstat命令详解
  7. 主板开启网络唤醒_网络唤醒bios详细设置图文教程 | 专业网吧维护
  8. Intel_Hm55_AHCI驱动
  9. Qt中配置OpenCV
  10. sharedassets0_Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)