php 上传到百度网盘,JavaScript_使用pcs api往免费的百度网盘上传下载文件的方法,百度个人云盘空间大,完全免 - phpStudy...

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

百度个人云盘空间大,完全免费,而且提供了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();

}

}

相关阅读:

C#读取文本文件到listbox组件的方法

win10打开或关闭动态磁贴中的滚动更新消息的详细教程

详解Linux系统中安装配置Samba服务器的步骤

css基础教程之CSS基础语法

基于javascript实现图片左右切换效果

引用css样式的书写格式详解

jquery实现删除一个元素后面的所有元素功能

CSS3实现的闪烁跳跃进度条示例(附源码)

.NET中保证线程安全的高级方法Interlocked类使用介绍

RHEL 7.0 编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14运行环境

Android中shape定义控件的使用

PHP实现简单实用的分页类代码

win7专用字符编辑程序中造字出现空白的方块怎么解决?

浅谈PHP中foreach/in_array的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值