当前位置:Gxlcms > PHP教程 > thinkphp jquery实现图片上传和预览效果

thinkphp jquery实现图片上传和预览效果

时间:2021-07-01 10:21:17 帮助过:15人阅读

先上效果图:

那个file按钮样式先忽略

点击选择图片(浏览),随便选一张图片

js代码如下

  1. //上传图片立即预览
  2. function PreviewImage(imgFile) {
  3. var filextension = imgFile.value.substring(imgFile.value
  4. .lastIndexOf("."), imgFile.value.length);
  5. filextension = filextension.toLowerCase();
  6. if ((filextension != '.jpg') && (filextension != '.gif')
  7. && (filextension != '.jpeg') && (filextension != '.png')
  8. && (filextension != '.bmp')) {
  9. alert("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传,谢谢 !");
  10. imgFile.focus();
  11. } else {
  12. var path;
  13. if (document.all)//IE
  14. {
  15. imgFile.select();
  16. path = document.selection.createRange().text;
  17. document.getElementById("photo_info").innerHTML = "";
  18. document.getElementById("photo_info").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\""
  19. + path + "\")";//使用滤镜效果
  20. } else//FF
  21. {
  22. path = window.URL.createObjectURL(imgFile.files[0]);// FF 7.0以上
  23. //path = imgFile.files[0].getAsDataURL();// FF 3.0
  24. document.getElementById("photo_info").innerHTML = "<img id='img1' width='120px' height='100px' src='"+path+"'/>";
  25. //document.getElementById("img1").src = path;
  26. }
  27. }
  28. }

html代码,其实不重要啦

  1. <div class="form-group has-success has-feedback">
  2. <label for="info_photo" class="col-sm-2 control-label">物品图片</label>
  3. <div class="col-sm-10">
  4. <span class="btn btn-success btn-file"> 选择图片 <span
  5. class="glyphicon glyphicon-picture" aria-hidden="true"></span>
  6. <input type="file" name="info_photo" value="" id="info_photo"
  7. onchange='PreviewImage(this)' />
  8. </span>
  9. </div>
  10. </div>
  11. <div class="form-group has-success has-feedback">
  12. <label for="info_desc" class="col-sm-2 control-label"><span
  13. style="color: red;">* </span> 详细描述</label>
  14. <div class="col-sm-10">
  15. <textarea class="form-control" rows="5" id="info_desc"
  16. name="info_desc" placeholder="如需补充,请填写..." title="可包含中文数字和常用字符"></textarea>
  17. <div id="photo_info" class="photo_info"></div>
  18. </div>
  19. </div>

css代码就不上了啊
顺便补充一下thinkphp上传图片代码,把整个发布消息都拷过了算了

  1. public function loseThing(){
  2. $m=M('info');
  3. $m->create();
  4. $upload = new \Think\Upload();// 实例化上传类
  5. $upload->maxSize = 3145728 ;// 设置附件上传大小
  6. $upload->exts = array('jpg', 'gif', 'png', 'jpeg','bmp');// 设置附件上传类型
  7. $upload->rootPath = './Public/';
  8. $upload->savePath = '/Uploads/'; // 设置附件上传目录
  9. $upload->autoSub = false;
  10. // 上传文件
  11. $info = $upload->upload();
  12. if($info) {
  13. // 上传成功
  14. foreach($info as $file){
  15. $m->info_photo=$file['savename'];
  16. }
  17. }
  18. $m->create_time=date('Y-m-d H:i:s',time());
  19. $m->uid=$_SESSION['id'];
  20. $m->username=$_SESSION['username'];
  21. /* $m->user_img=$_SESSION['filename']; */
  22. $m->info_type="寻物启事";//信息类型为失物
  23. $lastId=$m->add();
  24. if($lastId){
  25. $this->success('发布成功');
  26. }else{
  27. $this->error('发布失败,请先登录');
  28. }
  29. }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

人气教程排行