Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10073
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-25 19:15
文章分类
文章存档

2015年(13)

2014年(4)

我的朋友
最近访客

分类: PHP

2014-12-25 19:25:24

第一:php上传大文件需要修改服务器的php.ini文件



配置php.ini文件 (以上传500M以下大小的文件为例)
查找以下选项并修改->
file_uploads = On
;打开文件上传选项
upload_max_filesize = 500M
;上传文件上限
如果要上传比较大的文件,仅仅以上两条还不够,必须把服务器缓存上限调大,把脚本最大执行时间变长
post_max_size =
500M ;post上限
max_execution_time = 1800 ; Maximum execution time of each
script, in seconds脚本最大执行时间
max_input_time = 1800 ; Maximum amount of time
each script may spend parsing request data
memory_limit = 128M ; Maximum
amount of memory a script may consume (128MB)内存上限

第二:如果直接用post传,比较慢而且看到发送多少了

这次我是用了一款名叫swfupload的插件,下载插件js,

html:

点击(此处)折叠或打开

  1. <div id="swfupload-control">
  2.                     
  3.                 <input type="button" id="button" />
  4.                 </div>
js

点击(此处)折叠或打开

  1. $(function(){
  2.     $('#swfupload-control').swfupload({
  3.         // var seesionid = <?php echo session_id() ?>;
  4.         upload_url: "{:U('home/video/uploadvideo')}",
  5.         file_size_limit : "500MB",
  6.         file_types : "*.avi;*.mp4;*.flv",
  7.         file_types_description : "All Files",
  8.         file_upload_limit : "1",
  9.         flash_url : "__APP__/../admin/static/swfupload/swfupload.swf",
  10.         button_image_url : '__APP__/../admin/static/swfupload/XPButtonUploadText_61x22.png',
  11.         button_width : 61,
  12.         button_height : 22,
  13.         button_placeholder : $('#button')[0],
  14.         file_post_name : "Filedata",
  15.         post_params : {
  16.             "id" : "{$_GET['id']}"
  17.          },
  18.         // debug: true,
  19.         custom_settings : {something : "here"}
  20.     })
  21.         // .bind('swfuploadLoaded', function(event){
  22.         // $('#log').append('
  23. 载入
  24. ');
  25.         // })
  26.         .bind('fileQueued', function(event, file){
  27.             $('#log').append('
  28. 文件名 - '+file.name+'
  29. ');
  30.             // start the upload since it's queued
  31.             $(this).swfupload('startUpload');
  32.         })
  33.         .bind('fileQueueError', function(event, file, errorCode, message){
  34.             $('#log').append('<li>文件错误 - '+message+'</li>');
  35.         })
  36.         .bind('fileDialogStart', function(event){
  37.             $('#log').append('<li>文件对话开始</li>');
  38.         })
  39.         .bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
  40.             $('#log').append('<li>文件对话完成</li>');
  41.         })
  42.         .bind('uploadStart', function(event, file){
  43.             $('#log').append('<li>上传开始 - '+file.name+'</li>');
  44.         })
  45.         .bind('uploadProgress', function(event, file, bytesLoaded, totalbytes){
  46.             var proportion = parseInt(bytesLoaded/totalbytes*100);
  47.             $('#log').append('<li>上传进程 - '+proportion+'%</li>');
  48.             // $('#log').append('<li>总的 - '+totalbytes+'</li>');
  49.         })
  50.         .bind('uploadSuccess', function(event, file, serverData){
  51.             $('#log').append('<li>上传成功 - '+file.name+'</li>');
  52.         })
  53.         .bind('uploadComplete', function(event, file){
  54.             $('#log').append('<li>上传完成 - '+file.name+'</li>');
  55.              location.href = "{:U('index')}";
  56.         })
  57.         .bind('uploadError', function(event, file, errorCode, message){
  58.             $('#log').append('<li>上传错误 - '+message+'</li>
后端相当处理 input style=file name=Filedata 的文件
与火狐的兼容性问题:
该插件采用异步传递,会新开一个session,而火狐不会传递sessionid,如果有判断session存在的代码,会通不过,简单的处理方法在upload的php放开session检测


阅读(173) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:phpexcel导出excel以及与Thinkphp相关问题

给主人留下些什么吧!~~