thinkphp(php)+Ajax上传图片
来源:互联网 发布:into the west 知乎 编辑:程序博客网 时间:2024/05/17 07:32
使用的外部插件:
jquery.form.js(表单提交) :http://malsup.com/jquery/form/#download
jquery.json.min.js(解析json数据):http://www.oschina.net/p/jquery-json
表单代码部分:
<form tag="img_file_upload" id="file_upload" name="file_upload" method="post" action="<{:U('File/fileUpload')}>" enctype="multipart/form-data"> <input type="file" id="img" name="file"> <input type="hidden" name="member_id" value="<{:$_SESSION[C('USER_AUTH_KEY')]}>"/> <input type="button" value="上传" onclick="submitImgForm()"/></form><img tag="show_photo_upload_img" src="" alt=""/>
js代码:
<script> function submitImgForm(){ if ($("#img").val() == "") { alert("请选择一个图片文件,再点击上传。"); return; } var file_form = $("[tag='img_file_upload']"); var show_img = $("[tag='show_photo_upload_img']"); var options = { type : 'post', url : "<{:U('File/fileUpload')}>", dataType: 'text', contentType: "application/json; charset=utf-8", beforeSubmit:function(){ alert('正在上传'); }, success:function(data) { var json_obj = JSON.parse(data); show_img.attr('src',json_obj.img_path); alert(json_obj.error); }, error:function(XmlHttpRequest, textStatus, errorThrown){ alert(textStatus); alert(errorThrown); } }; file_form.ajaxSubmit(options); }</script>
后台php部分:
function fileUpload(){ $config = C('FILE_UPLOAD_CONFIG'); //附带的信息 $request_data = I('post.');// show_bug($request_data); $member_id = $request_data['member_id']; if(empty($the_file_usage)){ $the_file_usage = $file_usage['DOWNLOAD']; }// show_bug_with_exit($file_name); $file_info['member_id'] = $member_id; $file_info['created_time'] = time(); // 上传文件 //实例化上传类,传入上面的配置数组 $uploader = new Upload($config, 'Local');// $uploader->saveName = $file_uuid; $info = $uploader->upload($_FILES);// show_bug_with_exit($info); //这里判断是否上传成功 if ($info) { //// 上传成功 获取上传文件信息 foreach ($info as &$file) { //拼接出上传目录 $file['rootpath'] = __ROOT__ . ltrim($config['rootPath'], "."); //拼接出文件相对路径 $file['filepath'] = $file['rootpath'] . $file['savepath'] . $file['savename']; } //这里可以输出一下结果,相对路径的键名是$info['upload']['filepath'] $filepath = $file['filepath'];// show_bug_with_exit($filepath); $file_info['file_path'] = $filepath; $save_file_in_DB = $this->saveFileInfoIntoDB($file_info); //如果文件数据往数据库中存储失败,则删除文件 if(!$save_file_in_DB){ unlink($filepath); $return_data['error'] = '文件上传失败,请重试'; echo json_encode($return_data); } $return_data['error'] = '文件上传成功'; $return_data['img_path'] = $filepath; $return_data['img_id'] = $save_file_in_DB; jsonReturn($return_data); } else { //输出错误信息 $error_msg = $uploader->getError(); $return_data['error'] = $error_msg; jsonReturn($return_data); } } function saveFileInfoIntoDB($file_info){ $file = M('File'); $rs_u_file = $file->add($file_info); $file_id = $file->getLastInsID(); if(!$rs_u_file){ return false; } return $file_id; }
配置文件:
'FILE_UPLOAD_CONFIG'=>array( 'mimes' => '', //允许上传的文件MiMe类型 'maxSize' => 6 * 1024 * 1024, //上传的文件大小限制 (0-不做限制) 'exts' => array('jpg', 'gif', 'png', 'jpeg'),// 设置附件上传类型 'autoSub' => true, //自动子目录保存文件 'subName' => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组 'rootPath' => './Uploads/', //保存根路径 'savePath' => '', //保存路径 'saveName' => array('uniqid',''), ),
function.php文件
/** * 返回json格式的数据到客户端 * @access protected * @param mixed $data 要返回的数据 * @return void */function jsonReturn($data){ $json_str = json_encode($data); // 返回JSON数据格式到客户端 包含状态信息 header('Content-Type:application/json; charset=utf-8'); //处理json中包含的‘null’,将其替换成空字符串 $search = 'null'; $replace = '""'; $returndata = str_replace($search, $replace, $json_str);// testAddDataIntoTestTable(null,$returndata); exit($returndata);}
1 2
- thinkphp(php)+Ajax上传图片
- ThinkPHP 图片上传 图片异步上传 ajax
- php+ajax上传图片
- Ajax+php上传图片
- PHP AJAX上传图片
- php ajax图片上传
- ajax+php图片上传
- Ajax-php 图片上传
- jQuery php ajax图片上传
- Ajax+PHP 异步上传图片
- ThinkPHP中图片上传(批量上传)
- ThinKPHP框架+ajax实现图片无刷新上传
- php单图上传,多图上传,图片批量上传,图片异步上传Thinkphp整合kindeditor
- php+jquery Ajax异步上传图片(ajaxSubmit)实例
- PHP+jQuery+Ajax单(多)图片上传
- jquery + ajax +php 实现上传图片
- Ajax+PHP+jQuery图片截图上传
- Ajax+PHP+jQuery图片截图上传
- 01-复杂度2. Maximum Subsequence Sum (25)
- 青蛙换位置问题
- mongodb-manual-3.0.1 Indexes
- Null value was assigned to a property of primitive type setter of
- iOS 存储数据四种方式
- thinkphp(php)+Ajax上传图片
- DataGridView中DataGridViewComboBoxColumn无法赋值问题
- iOS中的抽屉效果
- Linux给用户添加sudo权限
- MySql性能调优(二)字段类型的选取之字符类型
- Linux 解压文件命令tar .gz .bz2 以及 7z解压缩命令
- Android的手机震动
- JSONObject与JSONArray的使用 jsonobject里面包含jsonarray
- Ubuntu配置Memcached和PHP扩展