微信小程序:上传图片到别的域名文件下

news2024/12/24 8:49:38

效果

wxml

<!-- 上传照片 -->
<view class="addbtn">
  <view class='pic' name="fault_photo" wx:for="{{imgs}}" wx:for-item="item" wx:key="*this">
    <image class='weui-uploader_img ' src="{{item}}" data-index="{{index}}" mode="aspectFill" bindtap="previewImg">
      <image src='{{clear}}' class="delete-btn" data-index="{{index}}" catchtap="deleteImg"></image>
    </image>
  </view>
  <view class="addphoto" bindtap="add_photo">
    <image src="{{add}}" class="addtext">+</image>
  </view>
</view>
<button bindtap="sumbit">提交</button>

wxss

/* 上传照片样式 */
.line3 {
  padding-top: 8%;
  background-color: white;
  width: 100%;
  padding-bottom: 4%;
  /* border: 1px solid black; */
}

.addbtn {
  padding-top: 5%;
  margin-left: 2%;
  padding-bottom: 5%;
  /* border: 1px solid black; */
}

.pic {
  float: left;
  position: relative;
  margin-right: 9px;
  margin-bottom: 9px;
  /* border: 1px solid black;  */
}

.weui-uploader_img {
  /* border: 1px solid black; */
  width: 150rpx;
  height: 150rpx;
}

.delete-btn {
  position: absolute;
  top: -14rpx;
  right: -14rpx;
  width: 20px;
  height: 20px;
  z-index: 9999;
}

.addphoto {
  width: 150rpx;
  height: 150rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* background-color: #F6F6F6; */
  border: 1px dashed #C6C6C6;
}

.addtext {
  /* border: 1px solid black; */
  /* font-size: 50px; */
  width: 80rpx;
  height: 80rpx;
  color: #BFC1C2;
}

js

const app = getApp()
Page({
  data: {
    //上传照片图片
    clear: app.globalData.icon + 'photo/clear.png',
    add: app.globalData.icon + 'photo/photo.png',
    imgs: [],
    allphoto: [],
  },
  //上传图片
  add_photo(e) {
    var that = this;
    var imgs = this.data.imgs;
    if (imgs.length >= 9) {
      this.setData({
        lenMore: 1
      });
      setTimeout(function () {
        that.setData({
          lenMore: 0
        });
      }, 2500);
      return false;
    }
    wx.chooseImage({ //图片相机的选择chooseMedia
      // count: 1, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        // console.log('返回图片路径信息', res.tempFilePaths)
        var imgs = that.data.imgs;
        for (var i = 0; i < tempFilePaths.length; i++) {
          if (imgs.length >= 9) {
            that.setData({
              imgs: imgs
            });
            return false;
          } else {
            imgs.push(tempFilePaths[i]);
          }
        }
        that.setData({
          imgs: imgs
        });
        console.log('图片合集', that.data.imgs);
      }
    });
  },
  // 删除图片
  deleteImg: function (e) {
    var imgs = this.data.imgs;
    var index = e.currentTarget.dataset.index;
    imgs.splice(index, 1);
    this.setData({
      imgs: imgs
    });
    // console.log('上传图片合集', this.data.imgs);
  },
  // 预览图片
  previewImg: function (e) {
    //获取当前图片的下标
    var index = e.currentTarget.dataset.index;
    //所有图片
    var imgs = this.data.imgs;
    wx.previewImage({
      //当前显示图片
      current: imgs[index],
      //所有图片
      urls: imgs
    })
  },
  sumbit(){
    console.log(this.data.imgs)
    //先执行图片上传
    let imgs = this.data.imgs
    // console.log(this.data.imgs)
    for (var i = 0; i < this.data.imgs.length; i++) {
      var that = this
      wx.uploadFile({
        //别的域名文件
        url: 'https://域名/api/api_wxmini.php',
        filePath: imgs[i],
        name: "file",
        header: {
          "content-type": "multipart/form-data"
        },
        success: function (res) {
          if (res.statusCode == 200) {
            wx.showToast({
              title: "上传成功",
              icon: "none",
              duration: 1500
            })
            console.log(res.data)
            that.data.allphoto.push(res.data) //向数组末端插入数据
          }
        },
        fail: function (err) {
          wx.showToast({
            title: "上传失败",
            icon: "none",
            duration: 2000
          })
        },
      })
    }
  }
})

php

别的文件路径

图片路径 

代码

<?php
    $file = $_FILES['file']; //获取小程序传来的图片
    $imgdirs = "../update_img/";//文件夹名称(/upload/update_img/)
    mkdirs($imgdirs);//创建$imgdirs文件夹
    //获取图片文件的名字
    $fileName = $_FILES["file"]["name"];
    // //获取图片类型
    $file_type = $_FILES["file"]["type"];
    $type = '';
    //判断是否是图片
    switch ($file_type) {
    case 'image/png':
        $type = '.png';
        break;
    case 'image/gif':
        $type = '.gif';
        break;
    case 'image/jpeg':
        $type = '.jpg';
        break;
    }
    //图片保存的路径
    $savepath = $imgdirs.$fileName; //upload/update_img/文件名
    // 临时文件移动到指定文件夹
    $rs = move_uploaded_file($_FILES["file"]["tmp_name"],$savepath);
    
    //成功上传文件
    if($rs) {
        $url = 'SO/'.$fileName;
        echo json_encode($url, JSON_UNESCAPED_SLASHES);
        } 
    else {
        $result=array('errno'=>1,'message'=>'失败信息');
        echo json_encode($result);
    }
    //创建文件夹 权限问题
    function mkdirs($dir, $mode = 0777){
        if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
        if (!mkdirs(dirname($dir), $mode)) return FALSE;
        return @mkdir($dir, $mode);
    }
?>

微信公众平台

上添加需要访问的域名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode配置记录

1. 修改代码背景颜色 1&#xff09;Shift Command P&#xff0c;搜索框输入&#xff1a;settings.json 2&#xff09;输入配置 {"workbench.colorCustomizations": {"editor.lineHighlightBackground": "#86e9e93d", # 修改鼠标所在行背景色…

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-8Matlab/Simulink传递函数Transfer Function

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-8Matlab/Simulink传递函数Transfer Function L − 1 [ a 0 Y ( s ) s Y ( s ) ] L − 1 [ b 0 U ( s ) b 1 s U ( s ) ] ⇒ a 0 y ( t ) y ˙ ( t ) b 0 u ( t ) b 1 u ˙ ( t…

(1)(1.5) FrSky telemetry

文章目录 前言 1 设置 2 Turnigy 9XR Pro 前言 FrSky 遥测技术允许你显示 ArduPilot 的信息&#xff0c;如飞行模式、电池电量和错误信息&#xff0c;以及来自 OpenTx 兼容遥控发射机上其他 FrSky 传感器的信息&#xff0c;甚至包括较旧的 X9R 发射机&#xff08;尽管功能较…

Tomcat下载及idea中配置Tomcat(详细图文步骤,建议收藏)

1、Tomcat简介 Tomcat的相关概念: Tomcat是Apache软件基金会一个核心项目&#xff0c;是一个开源免费的轻量级Web服务器&#xff0c;支持Servlet/JSP少量JavaEE规范。 概念中提到了JavaEE规范&#xff0c;那什么又是JavaEE规范呢? JavaEE: Java Enterprise Edition,Java企业…

ubuntu22.04 安装nvidia GPU显卡驱动

下载 https://www.nvidia.com/Download/index.aspx 删除原有的NVIDIA驱动程序 sudo apt-get remove –purge nvidia*禁用nouveau 默认情况下&#xff0c;Ubuntu采用开源的nouveau驱动程序作为Nvidia显卡的驱动&#xff0c;需要将其禁用 打开编辑配置文件&#xff1a; sudo …

最好的猫罐头品牌有哪些?精选的5款口碑好的猫罐头推荐!

对于一个刚入门的养猫小白来说&#xff0c;面对市面上琳琅满目的猫罐头选择确实让人头大。我们总想选到营养价值高的罐头&#xff0c;但又怕猫咪不喜欢吃&#xff0c;也担心选到不安全的产品。 最好的猫罐头品牌有哪些&#xff1f;根据我开宠物店7年的经验&#xff0c;今天我将…

探索AI在CRM中的潜力:智能化客户关系的构建

AI人工智能在CRM系统中的应用有&#xff1a;赋能内容生产、客户服务支持、赋能品牌推广、自动化业务流程、数据分析、辅助科学决策、给出最佳客户联系时间。合理运用CRM系统中AI人工智能助手可以让团队工作事半功倍。 1.内容生产 市场营销活动离不开内容生产&#xff0c;持续…

节日气氛拉满的毛衣~你喜欢吗?

节日氛围感毛衣一眼就心动采用北极绒面料厚实软糯有质感拼接彩点正是氛围感的来源 整件穿上超级显白显气质 随便搭件牛仔裤还是休闲裤 来穿都很亮眼&#xff01;&#xff01;

NFTScan | 12.04~12.10 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.12.04~ 2023.12.10 NFT Hot News 01/ NFTScan 与 MintCore 联合推出适用于 NFT 的 Layer2 网络 Mint 12 月 5 日&#xff0c;根据官方消息&#xff0c;NFT 基础设施服务商 NFTScan …

智慧文旅|故宫文旅运营管理大屏,开启智能旅游新篇章

智慧文旅是旅游业的未来发展趋势&#xff0c;它既有利于文化的传承与传播&#xff0c;又能满足人们对旅游体验的需求。智慧文旅的核心理念是结合现代科技与传统文化&#xff0c;打造独特的旅游目的地&#xff0c;让游客在旅行中获得知识的启迪和文化的享受。智慧文旅是旅游业的…

解决PS2022-23版本保存文件时转圈问题(同AdobeXD)

这类问题多是安装了Creative Cloud导致的&#xff0c;这个软件需要登录账号&#xff0c;然后会自动在所有Adobe软件中同步你登录的账号&#xff0c;并开启云服务。 在你卸载了CreativeCloud后&#xff0c;账号模块并没有被卸载&#xff0c;导致Adobe应用自动处于登录状态。 每次…

算法Day29 打印数目

打印数目 Description 小硕有一套字母表arr&#xff0c;其中每个上都刻有一个字母arr[i]。返回小硕可以印出的非空字母序列的数目。 注意&#xff1a;本题中&#xff0c;每个字母只能使用一次。 Input 输入字符串arr 1≤arr.length≤7 Output 输出可打印数目 Sample 代码 imp…

js中分号产生的问题详解,第一次出现分号导致的问题的记录

图示: 现在 这段代码本来是两行,但是格式化后注意下面一行缩进了,代表按一行解析了, 结果: 加上分号后再格式化就自动对齐了,代表按两行解析. 要是按照没有分号进行解析是怎样的? GPT回答: 这段代码是一行 JavaScript 代码&#xff0c;涉及到了 JSON 对象、条件语句和跳转页面…

小程序域名SSL证书能用免费的吗?

众所周知&#xff0c;目前小程序要求域名强制使用https协议&#xff0c;否则无法上线。但是对于大多数开发者来说&#xff0c;为每一个小程序都使用上付费的SSL证书&#xff0c;也是一笔不小的支出。那么小程序能使用免费的SSL证书吗&#xff1f; 答案是肯定的。目前市面上可选…

跨境独立站优势包括哪些?是否值得做呢?

跨境独立站的优势主要包括&#xff1a; 自主品牌建设&#xff1a;独立站可以更好地展示自主品牌形象&#xff0c;提高品牌知名度和美誉度。 独立域名&#xff1a;独立站可以拥有自己的域名&#xff0c;更加稳定和可信。 自主运营&#xff1a;独立站可以自主运营&#xff0c;包…

COMP9024 C programming language

UNSW (University of New South Wales) C语言可 WeChat: nicefyt

书-顺序查找某个数字p153

#include<stdio.h> int main(){int a[10]{12,13,14,15,16,17,18,19,20,1};int i ;for( i0;i<9;i)if (a[i]15)break; //这里a【i】1要加括号&#xff0c;不要加分号if(i>9)printf("没找到你所需要的数字\n");elseprintf("找到了目标数字&#xff0…

MATLAB六轴机械臂机器人的动力学分析

1、概述 动力学以牛顿第二定律为核心&#xff0c;这个定律指出了力、加速度、质量三者间的关系。 质点动力学有两类基本问题&#xff1a; 一是已知作用于质点上的力&#xff0c;求质点的运动&#xff0c;这个就是正动力学。 二是已知质点的运动&#xff0c;求作用于质点上的力…

ROB端口需求

对于一个 4-way 的超标量处理器来说&#xff0c;在重排序缓存&#xff08;ROB&#xff09;中每周期可以退休的指令个数应该是不小于四条的&#xff1b;如图给出的ROB,在那些最旧的指令中,有三条指令都已经变为了complete状态,那么在一个周期内就可以将这三条指令都退休。 要实现…

2023年【烟花爆竹储存】考试及烟花爆竹储存证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 烟花爆竹储存考试参考答案及烟花爆竹储存考试试题解析是安全生产模拟考试一点通题库老师及烟花爆竹储存操作证已考过的学员汇总&#xff0c;相对有效帮助烟花爆竹储存证考试学员顺利通过考试。 1、【单选题】B级成品(…