关于小程序请求PHP服务端,返回字符串奇怪的问题
来源:8-18 最近新品接口编写
朴自然华子
2017-08-24
七月老师,我在尝试做一个可以从小程序上传图片到腾讯云cos的功能,根据官方文档,是需要先通过wx.uploadFile(),结合wx.chooseImage(),把文件用$_Files上传到我自己的PHP服务器之后,保存下来,获取一个真实的全路径图片地址srcPath,然后通过腾讯云cos的上传图片sdk,去上传。sdk已经测试通过了。目前就是有个怪异的地方(基础知识不扎实),明明我在服务器端已经把路径生成好,是一个字符串,并返回。(不知道这样返回对不对,是不是需要在服务器端或小程序端对这个字符串作什么处理?)如下图。

但是从小程序端那边接收到的data,就变成这样了。路径中的斜杠莫名其妙多了。


这是服务端的代码:
<?php
/**
* Created by PhpStorm.
* User: songshu
* Date: 2017/8/23
* Time: 22:03
*/
namespace app\api\controller\v1;
use app\api\controller\BaseController;
use think\Exception;
class Uploadtoserver extends BaseController
{
public function UploadToServer()
{
if ($_FILES["sample"]["error"] > 0)
{
throw new Exception("文件为空");
} else
{
$basedir ="d:/xampp/upload/";
$filePath = $basedir . $_FILES["sample"]["name"];
move_uploaded_file($_FILES["sample"]["tmp_name"],
$filePath);
return $filePath;
}
}
}这是小程序端的js代码
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
uploadSingleImage: function () {
wx.chooseImage({
success: function (res) {
var tempFilePaths = res.tempFilePaths
wx.uploadFile({
url: 'http://z.cn/api/v1/uploadtoserver?XDEBUG_SESSION_START=14254',//仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'sample',
success: function (res) {
var sPath = res.data;
console.log(sPath);
// var sPath =res.data.replace(new RegExp("/", "g"),"");
wx.request({
url: 'http://z.cn/api/v1/uploadtocos?XDEBUG_SESSION_START=14254',
method: "POST",
data: {
// bucket:"http://zerg2-1253758785.cossh.myqcloud.com/images/",
bucket: "zerg2",
// srcPath: "d:\huazi.jpg",
srcPath: sPath,
dstPath: "sample2",
bizAttr: "",
insertOnly: "0",
slicesize: "3*1024*1024"
// expired: "7200"
},
success: function (res) {
}
})
}
})
}
})
},
})写回答
1回答
-
7七月
2017-08-25
多出来的斜杠是转义的意思。建议你看一下 转义字符这个概念。
00
相似问题