⑴ js、ajax怎樣上傳
ajaxfileupload.js插件的使用很簡單。
前台代碼類似:
<script type="text/javascript">$(#buttonUplod).click(function () { $.ajaxFileUpload ({ url:'doajaxfileupload.php', //你處理上傳文件的服務端 secureuri:false, //與頁面處理代碼中file相對應的ID值 fileElementId:'img', dataType: 'json', //返回數據類型:text,xml,json,html,scritp,jsonp五種 success: function (data) { alert(data.file_infor); } })});</script><input id="img" type="file" size="45" name="img" ><button id="buttonUpload" onclick="return ajaxFileUpload();">Upload</button>
後台doajaxfileupload.php腳本:
<?php $upFilePath = "../attachment/";$ok=@move_uploaded_file($_FILES['img']['tmp_name'],$upFilePath); if($ok === FALSE){ echo json_encode('file_infor'=>'上傳失敗'); }else{ echo json_encode('file_infor'=>'上傳成功'); }?>
為了測試,可以使用類似下面的方式保存傳遞過來的變數值:
$file_info = var_export($_FILES,true);
$ok = file_put_contents("../attachment/file_info.txt",$file_info);
if ($ok) exit(json_encode('file_infor'=>'上傳成功'));
exit (json_encode('file_infor'=>'上傳失敗'));
※ 注意
請留意HTML代碼文件框中的標記:
1. id='img'是用於給ajaxfileupload.js插件的fileElementId:'img'識別的,jQuery選擇器會利用該字元串獲得文本框的值;
2. name='img'是用於通過post方式提交到後台腳本時,PHP通過$_FILES['img']讀取上傳文件的數據,若沒有該值,$_FILES變數為空;
⑵ 急求!!!!thinkPHP+uploadify 實現圖片上傳預覽 源碼
js代碼:
$('#picture').uploadify({
swf:PUBLIC+'/Uploadify/uploadify.swf', //引入Uploadify核心Flash文件
uploader:uploadUrl, //PHP處理腳本地址
width:120, //上傳按鈕寬度
height:30, //上傳按鈕高度
buttonImage:PUBLIC+'/Uploadify/browse-btn.png', //上傳按鈕背景圖地址
fileTypeDesc:'ImageFile', //選擇文件提示文字
fileTypeExts:'*.jpeg;*.jpg;*.png;*.gif', //允許選擇的文件類型
formData:{'session_id':sid},
//上傳成功後的回調函數
onUploadSuccess:function(file,data,response){
if(data){
$('input[name=max]').val(data);
$('#upload_img').fadeOut().next().fadeIn().find('img').attr('src',ROOT+'/Uploads/'+data);
}else{
alert(data.msg);
}
}
});
php代碼:
public function uploadPic(){
$upload = new ThinkUpload(); // 實例化上傳類
$upload->maxSize = C('UPLOAD_MAX_SIZE') ;// 設置附件上傳大小
$upload->exts = C('UPLOAD_EXTS');// 設置附件上傳類型
$upload->rootPath = C('UPLOAD_PATH'); // 設置附件上傳根目錄
$upload->savePath = 'pic/'; // 設置附件上傳目錄
$upload->subName = date('Y-m');//子目錄創建方式
$upload->saveName = array('uniqid',''); //上傳文件的保存規則
$upload->replace = true;//同名文件覆蓋
// 開啟子目錄保存 並以日期(格式為Ymd)為子目錄
$upload->autoSub = true;
$upload->subName = array('date','Y-m');
$info=$upload->upload();
// 上傳文件
if(!$info) {// 上傳錯誤提示錯誤信息
$this->error($upload->getError());//獲取失敗信息
}else{
$images=$info['Filedata']['savepath'].$info['Filedata']['savename'];
//返迴文件地址和名給JS作回調用
echo $images;
}
}