ホームページ > ウェブフロントエンド > jsチュートリアル > pcs API を使用してバイドゥ ネットワークにファイルをアップロードおよびダウンロードする方法、disk_javascript スキル

pcs API を使用してバイドゥ ネットワークにファイルをアップロードおよびダウンロードする方法、disk_javascript スキル

WBOY
リリース: 2016-05-16 15:10:40
オリジナル
1626 人が閲覧しました

Baidu パーソナル クラウド ディスクは大容量で、完全に無料で、ファイルの呼び出しと操作のための PCS API を提供します。毎日のプロジェクトでいくつかのファイルを保存するのに非常に実用的です。

環境の準備:

ネットワーク ディスクの読み取りおよび書き込み権限を有効にし、access_token を取得します: http://blog.csdn.net/langyuezhang/article/details/47206621

Baidu 公式 pcs API ドキュメント: http://developer.baidu.com/wiki/index.php?title=docs/pcs/overview さまざまな言語の SDK があり、php を直接インポートしています。 SDK はまだ使用できません。使用する前に少し変更する必要があります。

上記の 2 つの記事を読めば、基本的には使用できるようになります。ユーザーが選択した画像を直接プレビューし、ネットワーク ディスクにアップロードするための API は次のとおりです。
https://pcs.baidu.com/rest/2.0/pcs/file?method=upload&path=%2fapps%2wp2pcs%2f1.JPG&access_token=***実際にはこのディレクトリへのアップロードのみが許可されているため、赤い部分は修正されています。 , ネットワーク ディスクに対応するディレクトリは、My Network Disk/My Application Data/wp2pcs です。たとえば、ファイルをアップロードする前にディレクトリを作成する必要はありません。写真を /apps/wp2pcs/ にアップロードしたい場合は、img の下にパスとして /apps/wp2pcs/img/1.jpg を書き込むだけです。以下は、インターネット上の例を参考にして、Web ページ上でユーザーが選択した画像をプレビューした後、ネットワーク ディスクに直接アップロードするコードです。 プレビュー:

//图片上传预览 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&#63;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();
}
}
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート