小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]

小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]前台代码wxml:<buttonbindtap=’chooseImg’>选择图片</button>//图片选择<view><imagesrc='{{img_l}}’bindtap=’preview_img’></image></view>//图片预览<buttonbindtap=’up_img’…

大家好,又见面了,我是你们的朋友全栈君。

前台代码wxml:

 

<button bindtap='chooseImg'>选择图片</button>//图片选择
<view><image src='{
  
  {img_l}}' bindtap='preview_img'></image></view>//图片预览

<button bindtap='up_img'>上传</button>//上传

 

page({
     data:{
  img_l:''
  },
 chooseImg:function(){
    var _this = this;
    wx.chooseImage({
      
      count: 2, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        console.log(res)
      _this.setData({
        img_l:res.tempFilePaths
      })
        console.log(res)
      
      }
    })
  },
 up_img:function() {
   var _this = this;
    wx.uploadFile({
      url: 'http://127.0.0.1/m_pro/upload.php', //接口
      filePath: _this.data.img_l[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success: function (res) {
        var data = res.data;
        console.log(data);
        //do something
      },
      fail: function (error) {
        console.log(error);
      }
    })
  },
  preview_img:function(){
    wx.previewImage({
      current: this.data.img_l, // 当前显示图片的http链接
      urls: this.data.img_l // 需要预览的图片http链接列表
    })
  }
})

 

 

 

 

 

后台php:

<?php
 date_default_timezone_set("Asia/Shanghai"); //设置时区
$code = $_FILES['file'];//获取小程序传来的图片
if(is_uploaded_file($_FILES['file']['tmp_name'])) {  
    //把文件转存到你希望的目录(不要使用copy函数)  
    $uploaded_file=$_FILES['file']['tmp_name'];  
    $username = "min_img";
    //我们给每个用户动态的创建一个文件夹  
    $user_path=$_SERVER['DOCUMENT_ROOT']."/m_pro/".$username;  
    //判断该用户文件夹是否已经有这个文件夹  
    if(!file_exists($user_path)) {  
        //mkdir($user_path); 
        mkdir($user_path,0777,true); 
    }  

    //$move_to_file=$user_path."/".$_FILES['file']['name'];  
    $file_true_name=$_FILES['file']['name'];  
    $move_to_file=$user_path."/".time().rand(1,1000)."-".date("Y-m-d").substr($file_true_name,strrpos($file_true_name,"."));//strrops($file_true,".")查找“.”在字符串中最后一次出现的位置  
    //echo "$uploaded_file   $move_to_file";  
    if(move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_file))) {  
        echo $_FILES['file']['name']."--上传成功".date("Y-m-d H:i:sa"); 
 
    } else {  
        echo "上传失败".date("Y-m-d H:i:sa"); 

    }  
} else {  
    echo "上传失败".date("Y-m-d H:i:sa");  
}  


?>

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150010.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • arping详解

    arping详解最近检测内网机器的ip占用问题,用到了arping,总结一下。版本arping主要干的活就是查看ip的MAC地址及IP占用的问题。arping有两个版本,一个版本是ThomasHabets这个人写的,这个版本有个好处是可以arping<MAC地址>,也就是说我们可以通过MAC地址得到IP。还有一个版本是Linuxiputilssui…

    2022年5月1日
    120
  • 【DB】HBase的基本概念

    【DB】HBase的基本概念

    2022年2月3日
    46
  • read digest_view the readme file

    read digest_view the readme file一、本文大纲系统调用的两种方式:中断门和快速调用_KUSER_SHARED_DATA结构使用cpuid指令判断当前CPU是否支持快速调用3环进0环需要更改的4个寄存器以ReadProcessMemory为例说明系统调用全过程重写ReadProcessMemory和WriteProcessMemoryint0x2e和sysenter都做了什么工作?二、中断门和快速调用以我的理解,系统调用,即从调用操作系统提供的3环API开始,到进0环,再到返回结果到3环的全过程

    2025年11月5日
    3
  • Vim复制粘贴_vim复制粘贴命令

    Vim复制粘贴_vim复制粘贴命令原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry内容:用vim这么久了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几

    2022年9月22日
    3
  • 客服系统源码购买_网联接入商户扣款

    客服系统源码购买_网联接入商户扣款介绍:客服系统多种商户接入客服源码,可以实现一行代码接入客服,非常舒服,支持无限客服,无限坐席!私有化源码部署,数据可控,稳定可靠。可自定义版权、logo。支持网页、微信公众号、小程序、App等任何程序对接。客服数量不限,每个客服又独立管理后台和账户密码。每个账户管理可以添加N个客服并且可以分组。双向微信模板消息通知。支持商品推送,对客服评价。支持客户分组。支持设置问候语,进入对话自动发送消息,可只能分配客服和转接。网盘下载地址:http://kekewl.cc/Evr7Jd0UX7h图

    2022年9月21日
    5
  • webgame开发中的文件加密

    webgame开发中的文件加密一般的webgame中都会对资源、消息进行加密,这里只是简单记录一下对文件的加密过程。上图为实际项目中所使用的加密工具(较为简单的一个air项目)输入加密key+需要加密的文件–>加密–>将加密后的文件保存至另一目录(后缀名视自己的项目的规则进行修改)实现步骤:1、读取文件(flash.filesystem.File),获取文件流(…

    2022年6月4日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号