谁做过pcs上传

今天看啥 热点:
使用pcs api往免费的百度网盘上传下载文件的方法,pcsapi百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的。
环境准备:
开通读写网盘的权限及获取access_token:http://blog.csdn.net/langyuezhang/article/details/
百度官方pcs api文档:/wiki/index.php?title=docs/pcs/overview,上面有各种语言的SDK,我用的laravel5,直接导里面的php SDK还用不了,稍做了修改才能用的。
看完上面两篇文章,基本就可以使用了,下面贴出写直接把用户选择的图片预览然后upload到网盘,上传的api:
/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.
//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.
div.innerHTML += '&div class="col-xs-6 col-md-3"&&a style="float:cursor:" 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.
funAppendImage();
reader.readAsDataURL(_file);
funAppendImage();
$('#coverBg').show();
$('#coverDiv').show();
//$("#uploadFrm" + product).submit();
var access_token = "***********";
var baseUrl = "https://c./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" +
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. i++)
var file = form[fileCtrl].files[i];
console.log(file.name);
var filePath = "%2fapps%2fwp2pcs%2f" + taskName + "%2f" + file.
console.log("add exif info to db");
getExifIinfo(taskName, file, product, filePath);
//document.getElementById("bytesRead").textContent = file.
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=" +
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&');
$("#reusltMsg").append('&div class="alert alert-danger" role="alert"& 上传失败.&/div&');
$("#reusltMsg").append('&div class="alert alert-danger" role="alert"& 上传失败(200).&/div&');
$('#coverBg').hide();
$('#coverDiv').hide();
xhr.send(formData);
alert("Please choose a file.");
$('#coverBg').hide();
$('#coverDiv').hide();
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
Javascript最近更新7144人阅读
Android(2)
上一篇文章讲到了BCS(百度云存储)的使用方法,本篇文章继续和大家探讨PCS(个人云存储)也就是代码和个人百度网盘的交互,实现文件上传,下载的功能,两外百度云PCS的API权限批不下来?不用怕!!!此文章教你怎么做;下一篇文章会和大家探讨百度云推送技术,谢谢大家;
实现PCS的思路和原理(以Android设备开发为例):
1.既然开发者的目的是用代码实现本地文件和百度网盘之间的传输,那么就必须先将两者连接起来,那么怎么连接呢?
开发者只要获取任一百度网盘的access_token号码,并将其加入到代码的指定位置,就能使用接口API来操作此百度网盘;下文将给出详细步骤,注意百度PCS是要申请权限的,官方迟迟不给批准,实际上我们可以利用技术绕开这一步的,欲知详情,请看下文。
2.当我们已经获得了某百度网盘的access_token号码,就可以有访问百度网盘的权利,桥梁已经搭好,只剩下怎么使用百度网盘的上传接口API和下载接口API了。下文给你获取API的demo,运行即可。
详细开发步骤:
1:获取自己百度网盘的access_token号码(百度云PCS的API权限批不下来?不用怕!!!)
直接上代码分析(注释可忽略):
注意:获取自己百度网盘的access_token号码的方法test_login()已经封装好,见本段文字下边。直接可以放进Java或者Android中调用,会进入授权页面,在授权页面中填入你的百度网盘的账号和密码,就会在屏幕上显示出你的access_token号码,你可以截屏记录下来,方便下一步骤使用;
private void test_login(){
BaiduPCSClient pcsApi = new BaiduPCSClient();
pcsApi.startOAuth(this, mbApiKey, new BaiduPCSClient.OAuthListener() {
public void onException(String msg) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), &Login failed & + msg, Toast.LENGTH_SHORT).show();
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
if(null != values){
mbOauth = values.getString(BaiduPCSClient.Key_AccessToken);
Toast.makeText(getApplicationContext(), &Token: & + mbOauth + &
User name:& + values.getString(BaiduPCSClient.Key_UserName), Toast.LENGTH_SHORT).show();
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), &Login cancelled&, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
BaiduOAuth oauthClient = new BaiduOAuth();
oauthClient.startOAuth(this, mbApiKey, new String[]{&basic&, &netdisk&}, new BaiduOAuth.OAuthListener() {
public void onException(String msg) {
Toast.makeText(getApplicationContext(), &Login failed & + msg, Toast.LENGTH_SHORT).show();
public void onComplete(BaiduOAuthResponse response) {
if(null != response){
mbOauth = response.getAccessToken();
Toast.makeText(getApplicationContext(), &Token: & + mbOauth + &
User name:& + response.getUserName(), Toast.LENGTH_SHORT).show();
public void onCancel() {
Toast.makeText(getApplicationContext(), &Login cancelled&, Toast.LENGTH_SHORT).show();
2.怎么使用上传接口API和下载接口API:
注意:注意在代码中填入你的access_token
上传文件接口API的使用:
private void test_upload(){
String mboauth=&你的access_token号码&;
if(null != mbOauth){
Thread workThread = new Thread(new Runnable(){
public void run() {
//String tmpFile = &sdcard/test.jpg&;
String tmpFile = &sdcard/myImage/2000001/upPhoto1.jpg&;//上传文件的路径
String mbRootPath= &/apps/pcstest&;//百度网盘上的路径必须以/apps/
BaiduPCSClient api = new BaiduPCSClient();
api.setAccessToken(mbOauth);
final BaiduPCSActionInfo.PCSFileInfoResponse response = api.uploadFile(tmpFile, mbRootPath + &/zzz.jpg&, new BaiduPCSStatusListener(){
public void onProgress(long bytes, long total) {
// TODO Auto-generated method stub
final long bs =
final long tl =
mbUiThreadHandler.post(new Runnable(){
public void run(){
Toast.makeText(getApplicationContext(), &total: & + tl + &
sent:& + bs, Toast.LENGTH_SHORT).show();
public long progressInterval(){
return 1000;
mbUiThreadHandler.post(new Runnable(){
public void run(){
Toast.makeText(getApplicationContext(), response.status.errorCode + &
& + response.status.message + &
& + monFileInfo.blockList, Toast.LENGTH_SHORT).show();
workThread.start();
下载文件API的使用:(今天先更到这里,有需要的留言)
另外需要所有API使用方法的请访问本人上传的资源(需要3个下载分的)链接:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:38255次
排名:千里之外
原创:21篇
评论:11条
(1)(2)(1)(3)(8)(3)(5)(4)批处理实现自动备份MySQL数据库并上传至百度PCS | 枫林博客
您好,您的网站做的很不错,很
这个keycdn是不是封国人
谢谢分享,学习了
站长还活着吗?那个无超链接的
体质养生 :
白银 广告设计,儿童养生职位
当前位置: &
& 批处理实现自动备份MySQL数据库并上传至百度PCS
博客搬到SAE了,这个还是比较省心的。不用老是为备份担心。开启友情赞助空间无聊了:[
] 一下,精彩文章等着你哦!
批处理实现自动备份MySQL数据库并上传至百度PCS
前提需要一个PCS的access_token,会使用PCS的朋友access_token就不用多说了,access_token可以在百度的接口里面自动生成
复制以下代码到文本文档并另存为bat批处理文件,再加到服务器的计划任务中去
修改其中的MySQL密码,表名,access_token值,百度应用名,需要上传到PCS的文件夹名就可以了
下面介绍一下批处理各行代码的意思:
1.切换至G盘
2.切换到G盘backup文件夹
3.定义一个文件名,这里使用《年月日时分秒》做为SQL文件名
4.输出到Mysql数据到文件
5.执行Curl上传到百度的PCS(此命令支持Windows和Linux)
cd G:\backup\
set filename=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.sql
mysqldump -h 127.0.0.1 -u root -p&password& --skip-lock-tables &table_name& && %filename%
curl -k -L -F "file=@%filename%" "https://c./rest/2.0/pcs/file?method=upload&access_token=&access_token&&path=/apps/&appname&/&sitename&/%filename%"
上传成功的截图
代码虽短,却花了博主不少时间测试,确保可用 (中文兼容不了,原因不明)
已经有2 条评论啦
总访问量:5001647次7146人阅读
Android(2)
上一篇文章讲到了BCS(百度云存储)的使用方法,本篇文章继续和大家探讨PCS(个人云存储)也就是代码和个人百度网盘的交互,实现文件上传,下载的功能,两外百度云PCS的API权限批不下来?不用怕!!!此文章教你怎么做;下一篇文章会和大家探讨百度云推送技术,谢谢大家;
实现PCS的思路和原理(以Android设备开发为例):
1.既然开发者的目的是用代码实现本地文件和百度网盘之间的传输,那么就必须先将两者连接起来,那么怎么连接呢?
开发者只要获取任一百度网盘的access_token号码,并将其加入到代码的指定位置,就能使用接口API来操作此百度网盘;下文将给出详细步骤,注意百度PCS是要申请权限的,官方迟迟不给批准,实际上我们可以利用技术绕开这一步的,欲知详情,请看下文。
2.当我们已经获得了某百度网盘的access_token号码,就可以有访问百度网盘的权利,桥梁已经搭好,只剩下怎么使用百度网盘的上传接口API和下载接口API了。下文给你获取API的demo,运行即可。
详细开发步骤:
1:获取自己百度网盘的access_token号码(百度云PCS的API权限批不下来?不用怕!!!)
直接上代码分析(注释可忽略):
注意:获取自己百度网盘的access_token号码的方法test_login()已经封装好,见本段文字下边。直接可以放进Java或者Android中调用,会进入授权页面,在授权页面中填入你的百度网盘的账号和密码,就会在屏幕上显示出你的access_token号码,你可以截屏记录下来,方便下一步骤使用;
private void test_login(){
BaiduPCSClient pcsApi = new BaiduPCSClient();
pcsApi.startOAuth(this, mbApiKey, new BaiduPCSClient.OAuthListener() {
public void onException(String msg) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), &Login failed & + msg, Toast.LENGTH_SHORT).show();
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
if(null != values){
mbOauth = values.getString(BaiduPCSClient.Key_AccessToken);
Toast.makeText(getApplicationContext(), &Token: & + mbOauth + &
User name:& + values.getString(BaiduPCSClient.Key_UserName), Toast.LENGTH_SHORT).show();
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), &Login cancelled&, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
BaiduOAuth oauthClient = new BaiduOAuth();
oauthClient.startOAuth(this, mbApiKey, new String[]{&basic&, &netdisk&}, new BaiduOAuth.OAuthListener() {
public void onException(String msg) {
Toast.makeText(getApplicationContext(), &Login failed & + msg, Toast.LENGTH_SHORT).show();
public void onComplete(BaiduOAuthResponse response) {
if(null != response){
mbOauth = response.getAccessToken();
Toast.makeText(getApplicationContext(), &Token: & + mbOauth + &
User name:& + response.getUserName(), Toast.LENGTH_SHORT).show();
public void onCancel() {
Toast.makeText(getApplicationContext(), &Login cancelled&, Toast.LENGTH_SHORT).show();
2.怎么使用上传接口API和下载接口API:
注意:注意在代码中填入你的access_token
上传文件接口API的使用:
private void test_upload(){
String mboauth=&你的access_token号码&;
if(null != mbOauth){
Thread workThread = new Thread(new Runnable(){
public void run() {
//String tmpFile = &sdcard/test.jpg&;
String tmpFile = &sdcard/myImage/2000001/upPhoto1.jpg&;//上传文件的路径
String mbRootPath= &/apps/pcstest&;//百度网盘上的路径必须以/apps/
BaiduPCSClient api = new BaiduPCSClient();
api.setAccessToken(mbOauth);
final BaiduPCSActionInfo.PCSFileInfoResponse response = api.uploadFile(tmpFile, mbRootPath + &/zzz.jpg&, new BaiduPCSStatusListener(){
public void onProgress(long bytes, long total) {
// TODO Auto-generated method stub
final long bs =
final long tl =
mbUiThreadHandler.post(new Runnable(){
public void run(){
Toast.makeText(getApplicationContext(), &total: & + tl + &
sent:& + bs, Toast.LENGTH_SHORT).show();
public long progressInterval(){
return 1000;
mbUiThreadHandler.post(new Runnable(){
public void run(){
Toast.makeText(getApplicationContext(), response.status.errorCode + &
& + response.status.message + &
& + monFileInfo.blockList, Toast.LENGTH_SHORT).show();
workThread.start();
下载文件API的使用:(今天先更到这里,有需要的留言)
另外需要所有API使用方法的请访问本人上传的资源(需要3个下载分的)链接:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:38258次
排名:千里之外
原创:21篇
评论:11条
(1)(2)(1)(3)(8)(3)(5)(4)}

我要回帖

更多关于 上传图片过大怎么办 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信