PHP如如何何将将图图片片文文件件上上传传到到另另外外一一台台服服务务器器上上
说,我有一个需求,就是一个临时功能 由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加
商品内容,比如商品名字,商品描述,商品库存,商品图片等 后台商品添加的接口已经写完了,但是问题是目前没有后台页面
,就是产品还没有出后台详细页面 前端已经完备了,上线了 后台还需要工作时间处理 所以目前的处理方法是在我们已经存
在的A项目后台中,添加一个对B项目添加商品的功能
一一、、当当下下问问题题
1、在我们已有的A项目中,新增一个添加商品的功能,这个本来是没有什么问题的,因为目前A项目中本身就已经连接了B
项目的数据库,所以商品属性的新增和修改都没什么问题 主要是商品图片的上传这里,有点问题 B项目已经对外提供了上传
图片的接口,但是由于我确实对前端不是特别熟悉 所以在A项目中的后台JS中调取B项目的上传图片的接口时,一直提示"COR
S",这里应该是存在一个跨域的问题,虽然我PHP接口端已经对跨域做了处理 (入口文件处),但是貌似JS这边也需要相应的调
整
// [ 应用入口文件 ]
//入口文件index.php
namespace think;
// 加载基础文件
require __DIR__ . '/thinkphp/base.php';
// 支持事先使用静态方法设置Request对象和Confi 对象
header("Access-Control-Allow-Ori in: *");
header("Access-Control-Allow-Headers: Content-Type,XFILENAME,XFILECATEGORY,XFILESIZE,au
thorization");
// 执行应用并响应
Container:: et('app')->bind('api')->run()->send();
2、无奈小白JS功底不够扎实,所以我这边准备通过A项目中调取后台PHP接口,然后通过在PHP代码中接受web端参数,然
后再转发,调取B项目中上传图片的接口,试图完成功能 于是先通过Postman接口工具测试了一下B项目上传图片的接口是否有
效 如图3,发现确实没有什么问题,于是就准备如此处理
3、但是实际是,在调取时,我们常用的传参数方式是GET或者POST方式,但是我们知道文件上传是通过$_FILES接受,下
面是B项目的上传图片的控制器代码 (用的是TP .1),接受是通过内置的file方式
/**上传图片
* @param Request $request
*/
public function uploadIm (Request $request){
$file = $request->file('ima e');
$type = $request->post('type', 0);
// 移动到框架应用根目录/uploads/ 目录下
$upload_path = confi ('common.upload_path');
switch ($type) {
case 1://门店
$path = $upload_path['shop_im '];
break;
case 2://投票活动
$path = $upload_path['vote_im '];
break;
case 3://投票活动参赛图片
$path = $upload_path['vote_contestant_im '];
break;
case 4 ://会员店铺lo o图片
$path = $upload_path['member_shop'];
break;
case 5://自营商品图片
$path = $upload_path['self_ oods'];
break;