使用FILEINPUT上传文件至新浪云storage接口的问题

qq_40699656 2018-05-21 06:02:38
使用Karjee bootstrap fileinput控件,希望通过新浪云存储的Form提交方法实现多图片上载。但是一直没成功。

看了例子,用了SCS的SDK,依葫芦画瓢。
          <form method="post" action="#" enctype="multipart/form-data" id="uploadForm">
<?php
foreach ($params as $p => $v)
echo "<input type=\"hidden\" name=\"{$p}\" value=\"{$v}\" />\n";
?>
<input id="myInput" type="file" name="file" multiple>
</form>


    $('#myInput').fileinput({
language: 'zh',
allowedFileExtensions: ['jpg', 'png', 'gif','JPEG'],
maxFileCount:'4',
uploadUrl: "http://my-bucket.sinacloud.net/",
uploadExtraData:
function (previewId, index) {
var obj = {};
$('#uploadForm').find('input').each(function() {
var id = $(this).attr('name'), val = $(this).val();
obj[id] = val;
});
return obj;
}
});


不知道为何POST到SCS的数据总是无效,我提交到自己的PHP输出
<?php

echo 'AWSAccessKeyId:'.$_POST['AWSAccessKeyId']."\n";
echo 'file:'.$_POST['file']."\n";
echo 'file_id:'.$_POST['file_id']."\n";
echo 'key:'.$_POST['key']."\n";
echo 'acl:'.$_POST['acl']."\n";
echo 'success_action_status:'.$_POST['success_action_status']."\n";
echo 'Content-Type:'.$_POST['Content-Type']."\n";
echo 'Content-Disposition:'.$_POST['Content-Disposition']."\n";
echo 'uid:'.$_POST['uid']."\n";
echo 'Policy:'.$_POST['Policy']."\n";
echo 'file:'.$_POST['file']."\n";
?>


和example页面的例子里面POST过来的数据有些不一致


示例中POST的结果:
AWSAccessKeyId:一致
file:
file_id:
key:remoteinspect/photo/7289717e09a8dd70
acl:public-read
success_action_status:201
Content-Type:application/octet-stream
Content-Disposition:29
uid:123
Policy:一致
file:



我的页面使用Fileinput控件POST的结果
AWSAccessKeyId:一致
file:C:\fakepath\20180508152134.jpg
file_id:0
key:remoteinspect/photo/a8dc526d33d5693a
acl:public-read
success_action_status:201
Content-Type:application/octet-stream
Content-Disposition:attachment; filename=${filename}
uid:123
Policy:一致
file:C:\fakepath\20180508152134.jpg


不知道该如何下手,请各位给点思路,轻喷!
...全文
1472 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40699656 2018-05-23
  • 打赏
  • 举报
回复
自己解决了,不用Form方式提交,服务端用了SDK中的这个方法解决。客户端设置uploadUrl即可
SCS::putObject(SCS::inputFile($uploadFile, false), $bucket, $path, SCS::ACL_PUBLIC_READ);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧