Javascript 如何在ajax url POST方法调用中从系统上载PDF文件
我刚刚用谷歌的API上传了一个空的PDF文件到谷歌硬盘,点击一个按钮Javascript 如何在ajax url POST方法调用中从系统上载PDF文件,javascript,jquery,ajax,api,google-drive-api,Javascript,Jquery,Ajax,Api,Google Drive Api,我刚刚用谷歌的API上传了一个空的PDF文件到谷歌硬盘,点击一个按钮 <html> <body> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){## Heading ## enter code here $.ajax({ url: 'https:
<html>
<body>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){## Heading ##
enter code here
$.ajax({
url: 'https://www.googleapis.com/upload/drive/v2/files',
type: 'POST',
data: 'http://fddf3e6.ngrok.io/untitle.pdf',
contentType: 'application/pdf',
success: function() {
console.log('Successfully File uploaded!');
},
error: function() {
console.log('Error while uploading file!!!');
},
beforeSend: function(xhr)
{
xhr.setRequestHeader('Authorization', 'Bearer <accessToken>');
}
});
});
});
</script>
<button>Send</button>
</body>
</html>
我将PDF文件位置的URL作为数据对象,但它将URL作为PDF文件的内容。如何上传PDF文件到谷歌驱动器是由我指定的
现在我可以通过用户访问令牌和GoogleDrive API将一个空PDF文件上传到驱动器中。我只需要帮助选择一个PDF文件,我想上传。如何选择它?如相关文件中所述,您不能使用url上载文件。您可以在内存中缓冲内容,然后上载它
您可以使用此代码从中获取文件的内容
var base64Data = btoa(e.target.result);
var multipartRequestBody =
delimiter + 'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter + 'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' + '\r\n' +
base64Data + close_delim;
$.ajax({
url: 'https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart',
type: 'POST',
headers: {
"Authorization": 'Bearer ' + ACCESS_TOKEN,
"Content-Type": 'multipart/related; boundary="'+ boundary + '"'
},
success: function() {
// TODO XIN
console.log('>>> DONE');
},
error: _handleUploadErrors,
data: multipartRequestBody,
cache: false,
contentType: false,
processData: false,
crossDomain: true
});
您还可以将上载类型设置为与正在上载的文件类型相匹配
简单上传:uploadType=媒体。用于快速传输小于等于5 MB的小文件。要执行简单的上载,请参阅。
多部分上载:uploadType=多部分。用于在单个请求中快速传输小于等于5 MB的小文件和描述该文件的元数据。要执行多部分上载,请参阅。
可恢复上载:uploadType=可恢复。用于更可靠的传输,对于大型文件尤其重要。对于大多数应用程序来说,可恢复上传是一个不错的选择,因为它们也适用于小文件,每次上传都需要额外一个HTTP请求。要执行可恢复上载,请参阅。
希望能有帮助