您好,欢迎访问一九零五行业门户网

使用pcs api往免费的百度网盘上传下载文件的方法_javascript技巧

百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的。
环境准备:
开通读写网盘的权限及获取access_token:http://blog.csdn.net/langyuezhang/article/details/47206621
百度官方pcs api文档:http://developer.baidu.com/wiki/index.php?title=docs/pcs/overview,上面有各种语言的sdk,我用的laravel5,直接导里面的php sdk还用不了,稍做了修改才能用的。
看完上面两篇文章,基本就可以使用了,下面贴出写直接把用户选择的图片预览然后upload到网盘,上传的api:
https://pcs.baidu.com/rest/2.0/pcs/file?method=upload&path=%2fapps%2wp2pcs%2f1.jpg&access_token=***红色部分是固定的,因为只允许上传到这个目录下,实际对应到网盘的目录是我的网盘/我的应用数据/wp2pcs、,无需先创建目录再上传文件,只需要指定路径,它会自动创建,如你想把图片上传到/apps/wp2pcs/img下,path就写/apps/wp2pcs/img/1.jpg就可以了。下面是把用户在网页上选择的图片,预览后直接上传到网盘的代码,参照了网上的例子:预览:
//图片上传预览 ie是用了滤镜。function previewimage(file, product){getphotopty();console.log(previewimage);uploadandsubmit(product);var div = document.getelementbyid('preview' + product);var filename = file.value;//upload();if (file.files){var i = 0;var funappendimage = function () {var _file = file.files[i];if (_file) {var reader = new filereader()reader.onload = function (evt) {filename = _file.name;div.innerhtml += 'x
';var img = document.getelementbyid('imghead' + product + filename);img.src = evt.target.result;i++;funappendimage();}reader.readasdataurl(_file);}};funappendimage();}$('#coverbg').show();$('#coverdiv').show();//$(#uploadfrm + product).submit();}
上传:
var access_token = ***********;var baseurl = https://c.pcs.baidu.com/rest/2.0/pcs/;function uploadandsubmit(product) {console.log(start uploadandsubmit);if (typeof filereader == 'undefined') {alert(你的浏览器不支持filereader接口!);}var taskname = $(#txttask).val() + - + $(#txttask2).val();var form = document.forms[uploadfrm + product];console.log(form: + form);var filectrl = filectrl + product;console.log(filectrl: + filectrl);//if (form[filectrl].files.length > 0)console.log($(#filectrl + product)[0]);if ($(#filectrl + product)[0].files.length > 0){for (var i = 0; i < $(#filectrl + product)[0].files.length; i++){var file = form[filectrl].files[i];console.log(file.name);var filepath = %2fapps%2fwp2pcs%2f + taskname + %2f + file.name;console.log(add exif info to db);getexifiinfo(taskname, file, product, filepath);//document.getelementbyid(bytesread).textcontent = file.size;console.log(start xmlhttprequest);var xhr = new xmlhttprequest();console.log(access_token);var url = baseurl + file?method=upload&path=%2fapps%2fwp2pcs%2f + taskname + %2f + file.name + &access_token= + access_token + &ondup=overwrite&count= + i;console.log(url);xhr.open(post, url, true);var formdata = new formdata();formdata.append(file, file);console.log(onreadystatechange);xhr.onreadystatechange = function () {console.log(onreadystatechange start);//console.log(xhr.status);if (xhr.readystate == 4) {if (xhr.status == 200) {console.log(upload complete);console.log(response: + xhr.responsetext);var result = $.parsejson(xhr.responsetext);if (result.hasownproperty(path)){$(#reusltmsg).append(' 上传成功.
');} else{$(#reusltmsg).append(' 上传失败.
');}} else{$(#reusltmsg).append(' 上传失败(200).
');}}$('#coverbg').hide();$('#coverdiv').hide();}xhr.send(formdata);}} else{alert(please choose a file.);$('#coverbg').hide();$('#coverdiv').hide();}}
其它类似信息

推荐信息