『壹』 請問ASP要如何使用jquery的插件uploadify,官網上的只有php的
Uploadify簡單說來,是基於Jquery的一款文件上傳插件。它的功能特色總結如下:
支持單文件或多文件上傳,可控制並發上傳的文件數
在伺服器端支持各種語言與之配合使用,諸如PHP,.NET,java……
通過參數可配置上傳文件類型及大小限制
通過參數可配置是否選擇文件後自動上傳
易於擴展,可控制每一步驟的回調函數(onSelect, onCancel……)
通過介面參數和CSS控制外觀
更多……
相關鏈接
Uploadify主頁地址:http://www.uploadify.com/ 在該頁面你可以了解到關於他的更多內容。
Uploadify在線演示:在線Demo
Uploadify配置參數及介面文檔:http://www.uploadify.com/documentation
Uploadify插件下載地址:http://www.uploadify.com/download
使用方法
下載插件安裝包後,可以看到裡面的幾個主要文件:jquery.uploadify.js(完成上傳功能的腳本文件,在調用頁面引用)、uploadify.css(外觀樣式表)、uploader.swf(上傳控制項的主體文件,flash控制項)、upload.php(伺服器端處理文件,官方僅提供了php版的)
引用了插件文件後,在頁面中做如下調用:
//聲明一個普通的html文件上傳控制項,並指定id
<input type="file" name="fileInput" id="fileInput" />
//將聲明的普通上傳控制項與Uploadify插件綁定
<script type="text/javascript">
$(document).ready(function() {
$('#fileInput').fileUpload ({
//以下參數均是可選
'uploader' : 'uploader.swf', //指定上傳控制項的主體文件,默認『uploader.swf』
'script' : 'upload.php', //指定伺服器端上傳處理文件,默認『upload.php』
'cancelImg' : 'cancel.png', //指定取消上傳的圖片,默認『cancel.png』
'auto' : true, //選定文件後是否自動上傳,默認false
'folder' : '/uploads' //要上傳到的伺服器路徑,默認『/』
'muti' : true, //是否允許同時上傳多文件,默認false
'fileDesc' : 'rar文件或zip文件' //出現在上傳對話框中的文件類型描述
'fileExt' : '*.rar;*.zip', //控制可上傳文件的擴展名,啟用本項時需同時聲明fileDesc
'sizeLimit': 86400 //控制上傳文件的大小,單位byte
'simUploadLimit' :5 //多文件上傳時,同時上傳文件數目限制
});
});
</script>
上面列出了我認為常用的配置選項,此外還有很多參數可配置,參考官方文檔
通過調用相關功能函數,聲明功能按鈕。
例如聲明上傳功能按鈕(自動上傳時不需要):
<a href="javascript:$('#fileInput').fileUploadStart();">上傳文件</a>
聲明取消多文件上傳時上傳隊列:
<a href="javascript:$('#fileInput').fileUploadClearQueue();">取消上傳隊列</a>
文章來自中國建站:http://www.jz123.cn/text/2419333.html
『貳』 php 怎把上傳的rar zip文件 自動解壓 用的是哪個函數 求高手指點 告急 謝謝 求源代碼
/**
* PHP在線壓縮/解壓實例
*/
date_default_timezone_set('prc');
$zip = new engine_compress_decompress();
if (isset($_POST))
{
$sourcePath = ''; //默認位置
if (isset($_FILES['upfile'])) //上傳文件
{
$stmp = $zip->fileUpload('upfile');
$sourcePath = $stmp['sourcefile'];
$upfileError = $stmp['error'];
}
elseif (isset($_POST['inputfile'])) //輸入目錄或者文件
{
$sourcePath = $_POST['inputfile'];
}
elseif (isset($_POST['decompresssourcefiles'])) //解壓縮提交
{
$isDecompress = $zip->decompress($_POST['decompresssourcefiles'], $_POST['topath']);
if (!empty($isDecompress['filelist']))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#decompress\'</script>';
}
}
$fileList = $zip->fileArray($sourcePath); //解壓縮文件列表
if (isset($_POST['compressinputfileorfolder'])) //壓縮文件目錄或者文件輸入
{
$sourcePath = $_POST['compressinputfileorfolder'];
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
$compressFilelist = $zip->compressFileArray($sourcePath); //壓縮文件列表
}
elseif ((isset($_POST['selectcompressfilelist'])) && (isset($_POST['compresssavefilename'])))
{
$compressFiles = $zip->compress($_POST['selectcompressfilelist'], $_POST['compresssavefilename']); //真實檢測
$isCompress = $zip->CompileZipFile($compressFiles, $zip->savePath, 'all');
if (!empty($isCompress))
{
$href = '<script type="text/javascript" language="javascript">window.location.href=\'#compress\'</script>';
}
}
}
『叄』 php 圖片上傳move_uploaded_file 出錯
上傳文件不存在。很可能是PHP臨時文件夾不存在導致的。
<?php
/*
* 文件上傳類
*/
class Uploads{
//上傳文件
private $uploadFile;
//上傳文件擴展名
private $ext = array('jpeg','jpg','gif','png');
//上傳文件大小
private $size = 5000000;
//上傳文件目錄
private $uploadDir = './uploads/';
//是否自定義名稱,默認FALSE
private $newName = '';
//上傳文件是否可讀,默認為TRUE
private $isRead = TRUE;
//上傳文件是否可寫,默認為TRUE
private $isWrite = TRUE;
//上傳信息
private $info;
/*
* 文件上傳類初始化
*/
public function __construct($newName='',$ext='',$size='',$dir='',$isRead=TRUE,$isWrite=TRUE){
$this->ext = empty($ext)?$this->ext:$ext;
$this->size = empty($size)?$this->size:$size;
$this->dir = empty($dir)?$this->uploadDir:$dir;
$this->newName = $newName;
$this->isRead = $isRead?TRUE:FALSE;
$this->isWrite = $isWrite?TRUE:FALSE;
}
/*
* 處理上傳文件
*/
public function doUpload(){
$this->checkData();
$this->checkFile() or $this->error();
$this->checkExt() or $this->error();
$this->checkSize() or $this->error();
$this->checkError() or $this->error();
$this->checkDir() or $this->error();
$this->upload() or $this->error();
return $this->info['msg'];
}
/*
* 處理上傳文件數據
*/
public function checkData(){
$num = 0;
$newArr = array();
foreach($_FILES as $v){
if(is_array($v['name'])){
$count = count($v['name']);
for($i=0; $i<$count; $i++){
foreach($v as $m=>$n){
$newArr[$num][$m] = $n[$i];
}
$num++;
}
}else{
$newArr[$num] = $v;
$num++;
}
}
$endArr = array();
foreach($newArr as $v){
if($v['name'] != ''){
$endArr[]=$v;
}
}
$this->uploadFile = $endArr;
}
/*
* 檢測上傳文件是否存在
*/
private function checkFile(){
if(empty($this->uploadFile)){
$this->info['error'] = '上傳文件不得為空!!!';
return FALSE;
}
return TRUE;
}
/*
* 檢測上傳文件類型是否合法
*/
private function checkExt(){
if(!is_array($this->ext)){
$this->ext = explode(',', $this->ext);
}
foreach($this->uploadFile as $v){
$ext = strtolower(substr(strrchr(basename($v['name']),'.'),1));
if(!in_array($ext,$this->ext)){
$this->info['error'] = '上傳文件類型非法,禁止上傳!!!';
return FALSE;
}
}
return TRUE;
}
/*
* 檢測上傳文件大小
*/
private function checkSize(){
foreach($this->uploadFile as $v){
if($v['size']>$this->size){
$this->info['error'] = '上傳文件體積過大,上傳失敗!!!';
return FALSE;
}
}
return TRUE;
}
/*
* 檢測文件上傳錯誤代碼
*/
private function checkError(){
foreach($this->uploadFile as $v){
switch($v['error']){
case 0:
return TRUE;
break;
case 1:
$this->info['error'] = '上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值,上傳失敗!!!';
return FALSE;
break;
case 2:
$this->info['error'] = '上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值,上傳失敗!!!';
return FALSE;
break;
case 3:
$this->info['error'] = '文件只有部分被上傳!!!';
return FALSE;
break;
case 4:
$this->info['error'] = '沒有文件上傳!!!';
return FALSE;
break;
}
}
return TRUE;
}
/*
* 檢測上傳文件夾是否存在
*/
private function checkDir(){
if(!file_exists($this->uploadDir)){
mkdir($this->uploadDir,0777,true);
}
if(!is_writeable($this->uploadDir)){
$this->info['error'] = '上傳目錄沒有寫入許可權,上傳失敗!!!';
return FALSE;
}
return TRUE;
}
/*
* 上傳文件
*/
private function upload(){
date_default_timezone_set('PRC');
//檢測文件是否自定義名稱
$name = empty($this->newName)?date('Ymd_His'):$this->newName;
foreach($this->uploadFile as $k=>$v){
$upload_path = $this->uploadDir.$name.'_'.($k+1).strrchr(basename($v['name']),'.');
$upload_path = iconv('UTF-8','gbk',$upload_path);
if(is_uploaded_file($v['tmp_name'])){
if(move_uploaded_file($v['tmp_name'], $upload_path)){
if($this->isRead && $this->isWrite){
chmod($upload_path,0777);
}else if($this->isRead && !$this->isWrite){
chmod($upload_path,0444);
}else if(!$this->isRead && $this->isWrite){
chmod($upload_path,0222);
}else{
chmod($upload_path,0000);
}
$this->info['msg']=array('type'=>1,'success'=>'文件上傳成功','path'=>iconv('gbk','UTF-8',$upload_path));
}else{
$this->info['error'] = '文件上傳失敗!!!';
return FALSE;
}
}
}
return TRUE;
}
/*
* 上傳成功的方法
*/
public function success(){
echo $this->info['msg']['success'];
}
/*
* 上傳文件錯誤方法
*/
public function error(){
echo $this->info['error'];
die;
}
這是我寫的PHP類,你可以參考一下。有什麼特殊需要的,你可以告訴我一下,完善一下上傳類。
『肆』 PHP+swfupload 上傳視頻失敗,報500錯誤,怎麼配置上傳大小
看看路徑是否正確(正反斜杠)。配置php.ini
如何配置php.ini實現PHP文件上傳功能。其中涉及到php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等選項,這些選項是文件上傳成敗的關鍵。我們以php.5.3.5的Windows版本為例說明。
php.ini中文件上傳功能配置選項說明
用文本工具(推薦EditPlus)打開php.ini 配置文件,查找 File Uploads ,在這個區域有以下3個選項:
file_uploads = On
是否允許HTTP文件上傳。默認值為On允許HTTP文件上傳,此選項不能設置為Off。
upload_tmp_dir =
文件上傳的臨時存放目錄。如果沒指定則PHP會使用系統默認的臨時目錄。該選項默認為空,此選項在手動配置PHP運行環境時,也容易遺忘,如果不配置這個選項,文件上傳功能就無法實現,你必須給這個選項賦值,比如upload_tmp_dir = "d:/fileuploadtmp" ,代表在D盤目錄下有一個fileuploadtmp目錄,並且給這目錄讀寫許可權。
upload_max_filesize = 2M
上傳文件的最大尺寸。這個選項默認值為2M,即文件上傳的大小為2M,如果你想上傳一個50M的文件,你必須設定 upload_max_filesize = 50M。
但是僅設置upload_max_filesize = 50M 還是無法實現大文件的上傳功能,我們還必須修改php.ini文件中的 post_max_size 選項。
繼續在 php.ini 中查找 Data Handling ,在這個區域有1個選項:
post_max_size = 8M
指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M。如果POST數據超出限制,那麼$_POST和$_FILES將會為空。
要上傳大文件,你必須設定該選項值大於upload_max_filesize選項的值,例如你設置了upload_max_filesize = 50M ,這里可以把post_max_size = 100M。
另外如果啟用了內存限制,那麼該值應當小於memory_limit 選項的值。
繼續在 php.ini 中查找 Resource Limits ,在這個區域有3個選項:
max_execution_time = 30
每個PHP頁面運行的最大時間值(單位秒),默認30秒。當我們上傳一個較大的文件,例如50M的文件,很可能要幾分鍾才能上傳完,但php默認頁面最久執行時間為30秒,超過30秒,該腳本就停止執行,這就導致出現無法打開網頁的情況。因此我們可以把值設置的較大些,如 max_execution_time = 600。 如果設置為0,則表示無時間限制。
max_input_time = 60
每個PHP腳本解析請求數據所用的時間(單位秒),默認60秒。當我們上傳大文件時,可以將這個值設置的較大些。 如果設置為0,則表示無時間限制。
memory_limit = 128M
這個選項用來設置單個PHP腳本所能申請到的最大內存空間。這有助於防止寫得不好的腳本消耗光伺服器上的可用內存。如果不需要任何內存上的限制將其設為 -1。
php5.2.0以前的版本默認8M; php.5.2.0版本默認為16M。php 5.2.0之後的版本默認為 128M;
php.ini 配置上傳文件功能示例
假設要上傳一個50M的大文件。配置 php.ini 如下:
file_uploads = On
upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
提示:需要保持 memory_limit > post_max_size > upload_max_filesize
ini_get()獲取php.ini設置值
ini_set()設置php.ini