PHP結(jié)合jquery ajax實現(xiàn)上傳多張圖片,并限制圖片大小操作示例
本文實例講述了PHP結(jié)合jquery ajax實現(xiàn)上傳多張圖片,并限制圖片大小操作。分享給大家供大家參考,具體如下:
php用jquery-ajax上傳多張圖片限制圖片大小
/**
* 上傳圖片,默認(rèn)大小限制為3M
* @param String $fileInputName
* @param number $size
*/
public function processUpload($fileInputName,$size=3145728)
{
$result = array('status'=>0, 'errcode'=>null, 'group'=>'', 'path'=>'', 'site'=>'', 'size'=>0);
$file = $_FILES[$fileInputName];
//用filesize函數(shù)獲取文件大小,filesize這個內(nèi)置函數(shù)不能直接放$fileInputName或者$file['name'],要用$file['tmp_name'],或者直接用$file['size']
$bytes = $file['size'];
if($bytes==0 || $bytes > $size){
$result['status'] = -1;
$result['size'] = $bytes;
return $result;
}
$fileMIME = $file['type'];
$originFilename = $file['name'];
$tmpFileDir = C('FILE_UPLOAD_SWAP_DIR');
$fileName = CommonUtil::generateUUid();
switch ($fileMIME)
{
case 'image/jpeg': //jpeg jpg jpe
$tmpFile = $tmpFileDir.$fileName.'.jpg';
break;
case 'application/x-jpg':
$tmpFile = $tmpFileDir.$fileName.'.jpg';
break;
default:
$result['status'] = 1;
$result['group'] = $tmpFileDir.$fileName;
$result['site'] = $fileMIME;
return $result;
}
//......
}

上圖是打印出來的$file屬性
下面是控制器代碼
/**
* 上傳多張圖片公共方法
* fileName 為input的name屬性
*/
public function doUploadJpgMultiple()
{
$filename = I('get.fileName','');
$uploader = new UploadJpgUtil();
$result = $uploader->processUpload($filename);
echo json_encode($result);
}
下面是ajax代碼
//一個頁面上傳多張圖片
function ajaxUploadMultiple(j) {
$.ajaxFileUpload({
url : base_url+"/UploadImgUtil/doUploadJpgMultiple?fileName=fileToUpload"+ j,
secureuri : false,
fileElementId : "fileToUpload"+ j,// file控件id
type: "POST",
dataType: 'json',
success : function(data, status) {
if (typeof (data.status) != 'undefined') {
if (data.status == -1) {
alert('上傳圖片不能超過規(guī)定大小');
}else if (data.status == 1) {
alert('上傳圖片不是JPG格式');
}else if (data.status != 0) {
alert('status='+data.status + ' errcode=' + data.errcode);
}
else {
var fileUrl = 'http://' + data.site + '/' + data.group
+ '/' + data.path;
$('#flatImgthumb'+ j).attr('src', fileUrl);
$('#hidFlatImgthumb'+ j).val(data.group + '/' + data.path);
}
}
},
error : function(data, status, e) {
alert(e);
}
});
return false;
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP+ajax技巧與應(yīng)用小結(jié)》、《php文件操作總結(jié)》、《PHP圖形與圖片操作技巧匯總》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
dede3.1分頁文字采集過濾規(guī)則詳說(圖文教程)續(xù)二
dede3.1分頁文字采集過濾規(guī)則詳說(圖文教程)續(xù)二...2007-04-04
php控制反轉(zhuǎn)與依賴注入的實現(xiàn)介紹
IOC-Inversion of Control,即控制反轉(zhuǎn)。它不是什么技術(shù),而是一種設(shè)計思想。這篇文章主要介紹了php控制反轉(zhuǎn)與依賴注入的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-09-09
關(guān)于php連接mssql:pdo odbc sql server
研究了很久,終于發(fā)現(xiàn):最新的php 5.3.6中php_mssql.dll,php_pdo_mssql.dll都已經(jīng)不見了。2011-07-07
php入門教程之Zend Studio設(shè)置與開發(fā)實例
這篇文章主要介紹了php入門教程之Zend Studio設(shè)置與開發(fā),簡單分析了Zend Studio模板的設(shè)置與php簡單開發(fā)商品訂單程序的技巧,需要的朋友可以參考下2016-09-09
使用Canal實現(xiàn)PHP應(yīng)用程序與MySQL數(shù)據(jù)庫的實時數(shù)據(jù)同步
Canal是阿里巴巴開源的一個數(shù)據(jù)同步工具,可實現(xiàn)MySQL數(shù)據(jù)庫到其他數(shù)據(jù)源的實時同步,PHP應(yīng)用程序中可輕松使用,提高系統(tǒng)的可靠性和實時性,提供了豐富的API和文檔支持2023-04-04

