使用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 += '<div class="col-xs-6 col-md-3"><a style="float:right;cursor:pointer;" onclick="del(this)">X</a><div class="thumbnail"><img id=imghead' + product + fileName + '></div></div>';
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('<div class="alert alert-success" role="alert"> 上传成功.</div>');
} else
{
$("#reusltMsg").append('<div class="alert alert-danger" role="alert"> 上传失败.</div>');
}
} else
{
$("#reusltMsg").append('<div class="alert alert-danger" role="alert"> 上传失败(200).</div>');
}
}
$('#coverBg').hide();
$('#coverDiv').hide();
}
xhr.send(formData);
}
} else
{
alert("Please choose a file.");
$('#coverBg').hide();
$('#coverDiv').hide();
}
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索百度pcs_api
pcs api、百度pcs api、百度pcs api 申请、百度云pcs api、pcs api 如何开通,以便于您获取更多的相关知识。

时间: 2024-11-16 20:42:27

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

如何用百度网盘上传测绘软件

  一般来说,软件都比图片.文字等大许多,所以,推荐大家借用百度网盘(pan.baidu.com),其上传速度与稳定性,都是无与伦比的,具体步骤如下: 1.注册百度网盘(pan.baidu.com),之前有百度账号的,登陆即可开通 2.选择需要保存的文件夹,点击左上角的"上传文件" 3.上传完成后,点击文件右侧的"分享"按钮 4.生成分享链接,把链接copy到帖子中,即可

百度网盘如何直接下载大文件

  百度云盘大文件直接下载教程(免客户端下载大文件)最新简单方法: 1.你的浏览器一定是Chrome浏览器或者基于Chromium内核的浏览器如360浏览器极速版. 2.前往网页百度云资源页面,如图 3.如果正常点击下载,那么肯定会提示"你下载的文件过大,需要使用百度云管家". 那么重点来了! 在你的chrome浏览器地址栏里,在百度云页面网址前加上"https://"前缀,这是一个安全协议,百度云无法跳转.然后直接点击下载,就不会提示下载百度云了. 此前办法如下:

教你怎样利用百度网盘进行磁力下载

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 1.下载谷歌插件,下载地址:http://pan.baidu.com/share/link?shareid=1070861956&uk=1882483976 2.打开谷歌浏览器:工具--扩展程序,如下图所示: 3.缩小谷歌浏览器,拖拽该插件进入扩展程序,自动安装: 4.打开百度网盘,你会发现此时多了一个"磁力链接"

百度网盘用迅雷下载方法分享

给各位百度网盘软件的用户们来详细的解析分享一下用迅雷下载百度网盘的方法. 方法分享: 步骤1.百度网盘,百度出品,目前使用稳定靠谱;   步骤2.要用迅雷下载百度云里的文件,首先要对浏览器进行设置;   步骤3.百度网盘怎么用迅雷下载?各种浏览器设置类似,打开"菜单","选项";   步骤4."基础设置"中"下载设置"的"选择默认下载工具"下拉选择"使用迅雷下载",设置完成,自动保存;

百度相册批量上传下载类

百度|上传|下载 Imports System.IOImports System.NetImports System.WebPublic Delegate Sub BaiduAlbumEventHandler(ByVal msg As String) '事件委托 Public Class baiduAlbum     ''' 声明事件    Public Event UpPicsComplete As BaiduAlbumEventHandler    Public Event UpPicsPr

不用链接,怎么搜索百度网盘上的资料

  以百度云网盘为例,我们选取一个自己能找到的百度云分享文件来分析其url,其网盘网站域名下的被索引的内容几乎都是分享文件,因而,我们只需要运用纯粹的站内搜索,即可搜到大量的网盘文件 用"site:网盘网站域名"的搜索表达式进行搜索,百度里收录的该网盘的所有文件就出来了.注意,表达式里的冒号是半角符号(英文输入法状态下的冒号),且冒号后不带空格.经过这样的站内搜索,我们也可以证明百度里索引的百度云域名下的内容,确实几乎都是分享文件. 上一步得到的搜索结果,还太繁杂,不适合我们挑选,因而

百度网盘免费扩容2T的好方法(默认只有几个G)

  现如今,很多网友习惯在网盘上存放许多文件,只有几个G的内存已经满足不了大家的生活需求了.这时候,有没有办法能令网盘内存变得更大呢?答案是肯定的!百度网盘怎么免费扩容到2T? 1.用浏览器搜索"百度云盘",打开注册. 2.注册好以后另起一页,输入如下图所示的网址. 百度网盘 3.按照提示下载百度云APP手机版. 4.打开应用登陆刚才注册的账号. 百度网盘 5.点击右下角"更多",此时已经自动扩容到2055G了. 百度网盘 6.最后,我们返回电脑版百度云,查看是否已

诸“云”之战国内已被百度网盘点燃

仅在2011年,全球云存储市场的份额就达到16亿美元之多,而国内的云存储市场更是成长惊人.短短1-2年时间中,就有诸如金山快盘.华为网盘.zsQQ网盘.飞速RayFile.纳米盘.新浪微盘.酷盘.360云盘.电信"e云".盛大网盘,甚至到最近再度高调露相,高喊"好友邀请天天high 免费自动扩容.天天抢iPad"的百度网盘等数十个各种网盘"出生".如此空前盛况背后,究竟隐藏着什么样的市场蓝海?而这一夜之间被点燃的"战火"里,国

诸“云”之战 国内已被百度网盘点燃

仅在2011年,全球云存储市场的份额就达到16亿美元之多,而国内的云存储市场更是成长惊人.短短1-2年时间中,就有诸如金山快盘.华为网盘.zsQQ网盘.飞速RayFile.纳米盘.新浪微盘.酷盘.360云盘.电信"e云".盛大网盘,甚至到最近再度高调露相,高喊"好友邀请天天high 免费自动扩容.天天抢iPad"的百度网盘等数十个各种网盘"出生".如此空前盛况背后,究竟隐藏着什么样的市场蓝海?而这一夜之间被点燃的"战火"里,国