⑴ 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;
}
}