《阿里云云计算ACP认证-用PHP和JS来实现PostObject表单操作和multipart上传操作》由会员分享,可在线阅读,更多相关《阿里云云计算ACP认证-用PHP和JS来实现PostObject表单操作和multipart上传操作(5页珍藏版)》请在金锄头文库上搜索。
1、2017 第 1 页 共 5 页 用 PHP 和 JS 来实现 PostObject 表单操作和 multipart 上传操作 最近实现了一段利用 PHP SDK 做表单上传的简单代码 一:使用表单上传,也就是使用 PostObject 使用方法: 假如是 oss-test-post-object 这个 bucket,使用杭州的域名 oss-cn- 将代码中的 BUCKET 换成自己的 oss-test-post-object, KEY 换成自己的 OSS secretkey,ID 换成自己的 OSS ID, BUCKET.HOST 替换成oss-test-post-object.oss-cn
2、- 特别说明: 1. 这里的代码都是简单实现,各位如果有需要还是根据自己的需求去实现 2. 尤其是在 php 中包含了 id 和 key,很不安全,还需要考虑安全的实现。 1. BUCKET); 7. $content_length_range = array(); 8. array_push($content_length_range, content-length-range); 9. array_push($content_length_range, 0); 10. array_push($content_length_range, 1048575); 2017 第 2 页 共 5 页
3、11. array_push($conditions, $content_length_range); 12. $optionsconditions = $conditions; 13. echo stripslashes(json_encode($options); 14. $policy = base64_encode(stripslashes(json_encode($options); 15. $sign = base64_encode(hash_hmac(sha1,$policy,KEY, true); 16. echo $policy; 17. echo ; 18. echo $s
4、ign; 19. echo ; 20. ? 21. 22. 23. function change(e) 24. var src=e.target | window.event.srcElement; /获取事件源,兼容 chrome/IE 25. src.style.background=red; 26. /测试 chrome 浏览器、IE6,获取的文件名带有文件的 path 路径 27. /下面把路径截取为文件名 28. var filename=src.value; 29. /获取文件名的后缀名(文件格式) 30. var suffix = filename.substring( fil
5、ename.lastIndexOf(.)+1 ); 31. document.getElementById(key_id).value = thisisatest. + suffix;.32. 32. . 33. 34. 35. 36. 2017 第 3 页 共 5 页 37. Insert title here 38. 39. 40. 41. 42. input type=text name=policy value= 43. input type=text name=Signature value= 44. 45. 46. 47. 48. 49. 保存成 php_post_object.p
6、hp, 放置在本地的 HTTP Server 的目录下,以保证可以访问 在浏览器访问 php_post_object.php 会出现页面有“选择文件”, 选择本地文件后,点击 upload,然后在控制台上看看文件是否 OK 就可以了。 二:使用页面,调用 PHP 的 multipart 上传文件 代码主要实现的内容是将指定目录下的 test2 文件上传到指定的 HOST 里的 BUCKET 下,以 OBJECT 来命名 步骤如下: 1. 下载代码 2017 第 4 页 共 5 页 见附件: 测试代码php_post_object-jstest.tar.gz 2. 解压到 HTTP Server
7、 的目录下 例如是 jstest 目录下 drwxrwxr-x 2 admin admin 4096 Apr 30 2014 util drwxrwxr-x 2 admin admin 4096 Apr 30 2014 services drwxrwxr-x 2 admin admin 4096 Apr 30 2014 logs drwxrwxr-x 3 admin admin 4096 Apr 30 2014 lib drwxrwxr-x 2 admin admin 4096 Apr 30 2014 lang drwxrwxr-x 2 admin admin 4096 Apr 30 2014
8、 docs drwxrwxr-x 2 admin admin 4096 Apr 30 2014 demo -rw-rw-r- 1 admin admin 404 Jun 6 2014 conf.inc.php -rw-rw-r- 1 admin admin 79653 Jun 25 2014 sdk.class.php -rw-rw-r- 1 admin admin 1144 Jan 27 11:17 multipart_upload.js -rw-rw-r- 1 admin admin 306 Jan 27 11:17 multipart_upload.html -rw-rw-r- 1 ad
9、min admin 79653 Jan 27 11:27 test2 -rw-rw-r- 1 admin admin 1107 Jan 27 20:09 multipart_upload.php 3. 修改 multipart_upload.php 2017 第 5 页 共 5 页 如图所示: 4. 通过浏览器点击上传页面 http:/127.0.0.1/jstest/multipart_upload.html 当页面出现类似 Status:200 还有这样的文字时,表示上传成功 etag = B7BA6E2733FC8AE4F30228611F45B4ED server = AliyunOSS 特别说明: 1. 这里的代码都是简单实现,各位如果有需要还是根据自己的需求去实现 2. 尤其是在 php 中包含了 id 和 key,很不安全,还需要考虑安全的实现。 另外还有一个 html 页面的上传: http:/