php第三方文件上传插件(php上传文件夹)

发布时间:2022-11-12

本文目录一览:

  1. php 上传大文件 插件 有哪些
  2. zblog网站怎么上传插件php
  3. php上传文件时,显示百分比用什么插件比较好
  4. SWFUpload 文件上传插件常用的配置讲解
  5. php中上传文件的方法有多少种

php 上传大文件 插件 有哪些

http协议里,对断点下载有支持。断点上传单纯靠php是做不了的,因为普通的浏览器端没那功能。(上传的时候还是会整个文件编码发送) 想实现的话,客户端需要插件了,客户端可以使用flex实现。服务端,php可以写个webservice接受文件。

zblog网站怎么上传插件php

百度自动推送JS代码如何安装使用?

  1. 手动插入代码(适合所有网站程序) 站长需要在每个页面的HTML代码中包含以下自动推送JS代码,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现。具体如下:
<script>
(function(){
    var bp = document.createElement('script');
    bp.src = '//push.zhanzhang.baidu.com/push.js';
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>

如果站长使用PHP语言开发的网站,可以按以下步骤操作:

  1. 创建名为“baidu_js_push.php”的文件,文件内容是上述自动推送JS代码;
  2. 在每个PHP模板页文件中的 body 标记后面添加一行代码:
<?php include_once("baidu_js_push.php") ?>
  1. 使用ZblogPHP百度自动推送插件
  • 插件名称:百度自动推送
  • 插件作者:大谋
  • 应用ID:dm_plug_baidu
  • 最低版本要求:Z-BlogPHP 1.3 Wonce
  • 插件下载地址:http://app.zblogcn.com/?id=887
  • 使用方法:下载安装插件后启用即可 推荐阅读:
  • 百度链接提交工具主动推送功能升级了
  • 网站站内链接优化的几个技巧
  • 让网站收录变快的方法
  • 80%的站长不知道的“网站微调”优化技术
  • 浅析ULR链接优化对百度排名提升的重要性

php上传文件时,显示百分比用什么插件比较好

使用Ajax方式上传文件,显示进度条一般都要求IE10以上的浏览器,但Chrome、Firefox、Safari这些版本低些都可以支持; 如果上传文件的话可以使用 jQuery form 插件,如果同时上传多个文件的可以使用 jQuery Uploadify插件,用SWFUpload没有浏览器的限制但是要求浏览安装Flash插件,当前还有很多这方面的插件,你可以根据自己使用的习惯来选择;

SWFUpload 文件上传插件常用的配置讲解

上传文件swfUpload 插件: 基本的文件上传涉及到的四个文件(还有一个处理数据的php文件这里没有涉及到):

  • html页面:upload_window.html
  • js文件:swfupload.js、handlers.js、fileprogress.js

第一:从html页面出发:

重要的是将页面加载时间中的var setting={}这个大对象中的参数设置好,以下都是这个对象里面的常用配置,非常重要。 首先需要将swfupload.swf加载,在 var setting={} 这个大对象里面加flash_url值:

flash_url: "tpl$siteurl_static/tpl/assets/uc/js/swfupload.swf",

然后需要将上传的路径加入:

upload_url: "" + uploadkey + "ck=" + ck + "cc=" + cc, // java的上传路径

相关的设置常用的有:

  • file_size_limit(设置上传的大小)
  • file_types(设置文件上传的类型)
  • file_types_description(设置文件上传描述)
  • file_upload_limit(设置文件上传的数量限制)
  • file_queue_limit(设置文件队列数量限制)
  • prevent_swf_caching: false(在相关的swf文件增加随机参数避免Flash被缓存)
  • debug: false

按钮的相关配置:

button_width: "200",
button_height: "50",
button_text_left_padding: 16,
button_text_top_padding: 7,
button_cursor: SWFUpload.CURSOR.HAND,
button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE

之后就是设置一些事件处理函数,这些都在 handlers.js 里面相应的函数:

file_dialog_start_handler: fileDialogStart,
file_queued_handler: fileQueued,
file_dialog_complete_handler: fileDialogComplete,
file_queue_error_handler: fileQueueError,
upload_start_handler: uploadStart,
upload_progress_handler: uploadProgress,
upload_error_handler: uploadError,
upload_complete_handler: uploadComplete,
upload_success_handler: uploadSuccess

以上的配置都是在页面自动加载函数的setting大对象里面需要配置的基本参数。 除了以上这些还有下面相应的非常关键的配置: 别忘记:在setting大对象结束之后,在自动加载函数结束之前还有:

swfu = new SWFUpload(settings);

其他重要配置:

  1. 关于上传进度的配置是关键:var setting={}这个大对象里面设置一个元素:
custom_settings: {
    progressTarget: "fsUploadProgress"
},

progressTarget的值(即fsUploadProgress)是文件上传进度的显示,将html里面设置相应的位置放id="fsUploadProgress"。 如:

<div class="progressbar progressbar-0" id="fsUploadProgress">
    <span class="prog-num">0</span>
</div>

span标签里的0就是从0开始进行上传,0就是初始的显示进度。 2. 关于上传的按钮设置:var setting={} 这个大对象里面设置:

button_placeholder_id: "spanButtonPlaceHolder"

需要将html相应的上传按钮加上相应的id="spanButtonPlaceHolder"。 如:

<div id="upload_doc" class="up-btn">
    <i>上传文档</i><span id="spanButtonPlaceHolder"></span>
</div>

成功上传需要将相应的数据进行处理: 在html页面中需要写ajax进行数据的处理:

// 成功后调用
function agree_upload() {
    var doc_id = $('.doc_title').attr('id');
    if (doc_id > 0) {
        uploadFinish(doc_id);
        parent.DOC88Window.close();
    } else {
        alert('您还未选择重新上传的文档');
    }
}
function uploadFinish(new_p_id) {
    var old_p_id = "tpl$p_id/tpl";
    $.ajax({
        url: "/ucr/doc.php?act=save_upload",
        type: "post",
        data: {
            old_p_id: old_p_id,
            new_p_id: new_p_id
        },
        dataType: "json",
        success: function (msg) {
            if (msg.result == 1) {
                alert("数据正确");
            } else {
                alert("数据错误");
            }
        }
    });
}

第二:因为html页面中setting配置中有相应的函数处理配置,涉及到handler.js函数,所以接下来到handler.js文件的处理配置:

根据html页面的配置,处理函数的顺序进行相应的配置。 首先是fileQueue函数(文件排队函数): 需要设置一个变量关于flash动画的函数:

var stats = swfu.getStats();

根据需要将文件上传队列数量进行限制:

if (stats.files_queued > 1) {
    alert("您的附件不能超过1个");
    return false;
}

接下来是fileQueueError函数(文件排队错误函数): 根据需要将相应的设置放在这个函数里面,可以放在try catch函数里面,设置的限制如下:

switch (errorCode) {
    case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
        alert('单个文件大小不要超过50MB');
        break;
    case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
        alert('不能上传空文件');
        this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
    case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
        alert('文件类型错误');
        break;
    default:
        if (file !== null) {
        }
        this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
}

接下来是uploadStart函数(文件上传开始函数): 设置相应的功能按钮的变换,比如上传开始(走到这个函数时可以将相应的上传按钮改成上传中并且禁止点击,就是禁用功能,加上一个取消上传按钮) 可以将上传的文件的名称和文件格式显示出来:

$("#upload_doc i").html("上传中");
$('#cancel_upload').html('取消');
$("#upload_doc").attr('disabled','disabled');
var name = file.name;
$('.doc_title').html(name);
var format = file.type;
format = format.toLocaleUpperCase();
format = format.replace('.', '');
$('.doc_format').html(format);

接下来是uploadProgress函数(文件上传进度函数):

var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); // 上传的进度
var progress = new FileProgress(file, this.customSettings.progressTarget);
progress.setProgress(percent);
progress.setStatus("正在上传");

接下来是uploadSuccess函数(文件上传成功函数) 然后是uploadError函数(上传失败函数): 其他相关的函数可以根据需要进行设置。

第三:fileprogress.js文件,关于文件上传进度,关键的是:

FileProgress函数的设置:

function FileProgress(file, targetID) {
    this.fileProgressID = file.id;
    this.fileProgressWrapper = document.getElementById(this.fileProgressID);
    if (!this.fileProgressWrapper) {
        this.fileProgressWrapper = document.createElement("li");
        this.fileProgressWrapper.id = this.fileProgressID;
        document.getElementById(targetID).appendChild(this.fileProgressWrapper);
    }
    this.setTimer(null);
}

FileProgress.prototype.setProgress = function (percentage) {} 里面进度样式的处理:

if (percentage >= 5) {
    $(".progressbar").addClass('progressbar-5');
} else if (percentage >= 10) {
    $(".progressbar").addClass('progressbar-10');
}
...

第四:swfupload.js文件,几乎不用修改,可以将不用的函数删减。

有很详细的讲解链接:

php中上传文件的方法有多少种

一、传统的php写的上传类

写一个php的上传类,这个方法用到的知识全部是php的,而且技术的难点也不多。

<form method="post" action="upload.php" enctype="multipart/form-data">
    <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
        <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
        <input name="file" type="file" value="浏览" />
        <input type="submit" value="上传" name="B1" />
    </table>
</form>

服务端利用php的$_FILES['file']['name']来获取文件后缀名,具体的代码自己查找资料看看,这里就不多说了。 总结:这个方法可以用来上传小于2M的文件或者是图片,基本的功能可以实现。

二、利用uploadify插件

这个是利用jQuery的上传插件,上传可以带进度条,容易配置。 总结:可以上传一些大文件和图片,而且带进度条,可以多文件上传,在WEB中会经常用。

三、利用百度的webupload

WebUploader 是由 Baidu FEX 团队开发的一款以 HTML5 为主,FLASH 为辅的现代文件上传组件。在现代的浏览器里面能充分发挥 HTML5 的优势,同时又不摒弃主流IE浏览器,沿用原来的 FLASH 运行时,兼容 IE6+,iOS 6+, Android 4+。采用大文件分片并发上传,极大的提高了文件上传效率。

四、swfupload的插件

这是一个jQuery的上传插件,功能也非常强大,开发也比较容易,网上有很多的资料,可以自行查找。