使用pdfobject.js实现在线浏览PDF--后台上传保存文件
今天产品有了一个提了一个新的需求:后台上传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--后台上传保存文件相关推荐
- 前端使用pdf.js插件在线浏览pdf
vue中使用PDF.js_没理由的花呗的博客-CSDN博客_pdf.js vue 步骤 1.官网下载pdf.js插件放入一个公用方法文件夹中如utils 2.在需要使用的页面使用iframe标签 &l ...
- java 文件下载方法_【工具类】Java后台上传下载文件的几种方式
/** * 将本地照片上传至腾讯云服务上 */ public void uploadImage(String localImagePath) throws Exception { // 1.将订单照片 ...
- 网站开发之ie下在线浏览pdf文件无需本地支持
1.首先,务必通过后面给的链接了解一些可实现的方法:打开链接. 2.个人选择了PDFObject+PDF.js来实现,这里需要下载pdfobject.js和PDF.js.对于pdfobject.js, ...
- IE上在线浏览PDF
工作中遇到在IE中,在线显示PDF的需求,项目采用的是SpringMvc. 这里有二种情况,一是在jsp中显示pdf,还有一种就是html中显示PDF.运用所遇到的问题是在html中显示PDF,针对I ...
- 8个实现在线浏览PDF文件的实用jQuery插件
在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又 ...
- 微信公众号或者浏览器实现在线浏览pdf文件
微信公众号或者浏览器实现在线浏览pdf文件 实现在线浏览pdf文件方法 开发步骤: 实现在线浏览pdf文件方法 我们在日常的开发当中经常需要实现pdf文件的显示,最近做了一个在微信公众号中实现pdf浏 ...
- WEB中使用viewer.js实现在线浏览Office文档
1.如何使用ViewerJS 把ViewerJS放在你的网站很容易,花费的时间不会超过5分钟.ViewerJS是一个非常通用的文档查看器,驻留在您的web服务器本身. 运行ViewerJS一样简单的做 ...
- js上传超大文件解决方案
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- 网页扫描图像并以pdf格式上传到服务器端
本文描述如何通过网页驱动扫描仪.高拍仪等图像扫描设备进行图像扫描,扫描结果经编辑修改后以pdf压缩格式上传到后台java程序中进行服务器端落盘保存. 图像扫描上传如文字描述顺序所介绍,先要驱动扫描设备 ...
- 上传视频文件到又拍云,jsp内嵌window media player在线播放
上传视频文件到又拍云,jsp内嵌window media player在线播放 完成上述功能的后台路径 filePath.jsp(ajax)->UpYunController.java--> ...
最新文章
- 为什么只有很少的人听说过西工大这个名字?
- 正则控制可以输两位小数、负数,整数
- 美团都在用的实时应用监控平台,到底有多好用?
- web前端基础(03html列表知识)
- 前端 JS 之 AJAX 简介及使用
- echarts中矢量图片路径设置
- iOS底层探索之Runtime(一):运行时方法的本质
- 新媒体文章标题怎么写?
- 简易交通灯控制器Verilog
- 保研经历总结--天津大学
- springboot整合es实现聚合搜索(api搜索版)
- 笔记本w ndows未能启动,Windows未能启动原因可能是最近更改了硬件或软件解决方法...
- vb.net LPT端口 开钱箱和小票纸打印超时问题解决办法
- html字体怎么变大变粗,ppt如何加粗字体更粗 幻灯片的艺术字怎么把字体变粗?...
- Java学习---day07_继承及final、Object的介绍
- 谷歌浏览器如何正确安装第三方已被停用的扩展插件
- 洛谷:P1424 小鱼的航程(改进版) JAVA
- VS2017 安装 Microsoft Visual Studio Installer Project
- (二)基于数据库的认证与授权
- Linux中Python程序CPU占用高排查
热门文章
- ascii码01100001_【多选题】计算机中字符a的ASCII码值是(01100001)2,那么字符c的ASCII码值是( )。...
- 黑苹果 hackintosh 安装初体验
- PageHelper分页插件的简单使用
- [高西泉] 数字信号处理(第四版)程序集
- 电商有关淘宝天猫突破限制的解决办法
- Linux运维04:vmstat命令详解
- 主板开启网络唤醒_网络唤醒bios详细设置图文教程 | 专业网吧维护
- Intel_Hm55_AHCI驱动
- Qt中配置OpenCV
- sharedassets0_Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)