• swfupload简单使用


    swfupload对于大文件上传等比较好用,下面以classic form demo为例,简单说明下用法

    下载地址:http://code.google.com/p/swfupload/downloads/list

    其中 SWFUpload_v250_beta_3_samples.zip 为实例代码,解压后重命名为swfupload,保存到本地主文件夹(nginx+php环境)下,便可以通过

    http://localhost/swfupload/demos/ 访问

    其中两个文件夹,demos 为客户端的实例,samples 提供了各语言的文件保存代码。

    切换到 http://localhost/swfupload/demos/formsdemo/ 即普通表单模式

    在/demos/formsdemo/下新建文件夹 uploads

    将 /smaples/php/upload.php 中的代码拷贝到 /demos/formsdemo/upload.php 开头,即

    // The Demos don't save files
    

    这个注释下面。

    修改其中的

    $upload_name = "filedata";
    

    为:

    $upload_name = "resume_file";
    

     (与/demos/formsdemo/index.php中的表单元素名称一致)

    此时,可以使用表单正常上传文件,上传的文件保存在/demos/formsdemo/uploads/目录下

    数据库处理部分,应修改下面的代码:

    if (isset($_FILES["resume_file"]) && is_uploaded_file($_FILES["resume_file"]["tmp_name"]) && $_FILES["resume_file"]["error"] == 0) {
    	echo rand(1000000, 9999999);	// Create a pretend file id, this might have come from a database.
    }
    

    这段代码是原来demo中的upload,其作用时返回一个已经上传的文件的id并赋给表单的hidFileID标签(注意到,这个标签是一个hidden元素)

    原demo是随机产生的一个数,在这要修改为数据库插入操作得到的一个数据库表的id值。即下面的做法:

    去掉对$_FILES的if判断(这在上面的move_uploaded_file之后is_uploaded_file判断为false);进行数据库插入操作;直接echo得到的id(数字型)。

    对于大文件上传,需要首先修改表单部分的,即

    /demos/formsdemo/index.php中

    file_size_limit : "100 MB",
    

    修改为期待的尺寸(最大2G)

    修改nginx.conf,/etc/init.d/nginx reload,若不添加下面的设置,则nginx会出现413 Request Entity Too Large错误

    http {
    ...
    client_max_body_size 128M
    ...
    }
    

    同时需要修改服务器配置 php.ini, /etc/init.d/php-cgi reload

    upload_max_filesize 100M
    post_max_size 100M
    memory_limit 128M
    

    注意到swfupload并不要求修改max_execution_time和max_input_time的配置。

  • 相关阅读:
    编程技术网站汇总
    SQL中select与set的区别-转载
    JQuery 了解
    Html--表单练习
    SqlServer--聚合函数
    SqlServer--模糊查询-通配符
    SqlServer-- NULL空值处理
    Sql--order by、desc降序、top
    Nginx+Tomcat+Memcached集群
    配置Nginx服务
  • 原文地址:https://www.cnblogs.com/bloodmage/p/2048986.html
Copyright © 2020-2023  润新知