간단히 요약하면 pdf 문서를 구문 분석에 저장하려고합니다. 본질적으로 그것이 작동하는 방법, 사용자가 Google 드라이브에서 업로드 된 파일을 선택하고 선택한 문서에서 Parse에 저장하려고합니다.파일을 구문 분석 (자바 스크립트)
드라이브에서 선택한 PDF 문서의 URL을 생성 할 수 있었으며 해당 URL을 사용하여 Parse에 저장하려고합니다.
아래는 사용자가 Google 드라이브에서 PDF 문서를 선택할 수 있도록 허용하고 해당 항목에 대해 고유 한 URL이 생성되는 코드입니다.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>eSnail Scan Upload Part 2</title>
<script type="text/javascript">
// The Browser API key obtained from the Google Developers Console.
var developerKey = 'xxxxxxxxxx';
// The Client ID obtained from the Google Developers Console.
var clientId = 'xxxxxxxxxxxxx';
// Scope to use to access user's photos.
var scope = ['https://www.googleapis.com/auth/photos'];
var pickerApiLoaded = false;
var oauthToken;
// Use the API Loader script to load google.picker and gapi.auth.
function onApiLoad() {
gapi.load('auth', {'callback': onAuthApiLoad});
gapi.load('picker', {'callback': onPickerApiLoad});
}
function onAuthApiLoad() {
window.gapi.auth.authorize(
{
'client_id': clientId,
'scope': scope,
'immediate': false
},
handleAuthResult);
}
function onPickerApiLoad() {
pickerApiLoaded = true;
createPicker();
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
oauthToken = authResult.access_token;
createPicker();
}
}
// Create and render a Picker object for picking user Photos.
function createPicker() {
if (pickerApiLoaded && oauthToken) {
var picker = new google.picker.PickerBuilder().
enableFeature(google.picker.Feature.MULTISELECT_ENABLED).
addView(google.picker.ViewId.PDFS).
setOAuthToken(oauthToken).
setDeveloperKey(developerKey).
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
}
// A simple callback implementation.
function pickerCallback(data) {
var url = 'nothing';
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var doc = data[google.picker.Response.DOCUMENTS][0];
url = doc[google.picker.Document.URL];
}
var message = 'The following(s) were stored in Parse: ' + url;
document.getElementById('result').innerHTML = message;
}
</script>
</head>
<body>
<div id="result"></div>
<!-- The Google API Loader script. -->
<script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>
</body>
</html>
는 기본적으로 나는 파일의 URL을 가지고 있고, 나중에 그 파일을 검색 할 수 있도록 구문 분석에 해당 URL을 저장하고 싶습니다.
참고 : 아래
내가 그 사용자가 구문 분석에 파일을 업로드 할 수 있습니다 볼 수있는 코드입니다. 문제는 내가 파일을 사용자 컴퓨터 (파일 입력을 사용하여 파일을 업로드)에서 오는 것이 아니라 Google 드라이브에서 제공 한 URL에서 가져 오는 것입니다.
<HTML>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<form id="fileupload" name="fileupload" enctype="multipart/form-data" method="post">
<fieldset>
<input type="file" name="fileselect" id="fileselect"></input>
<input id="uploadbutton" type="button" value="Upload to Parse"/>
</fieldset>
</form>
<script type="text/javascript">
$(function() {
var file;
// Set an event listener on the Choose File field.
$('#fileselect').bind("change", function(e) {
var files = e.target.files || e.dataTransfer.files;
// Our file var now holds the selected file
file = files[0];
});
// This function is called when the user clicks on Upload to Parse. It will create the REST API request to upload this image to Parse.
$('#uploadbutton').click(function() {
var serverUrl = 'https://api.parse.com/1/files/' + file.name;
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("X-Parse-Application-Id", 'pWG7YizRnwxRjplGT9RSLoHtFItDtvmc2EK0YJAe');
request.setRequestHeader("X-Parse-REST-API-Key", '2LsfIAg5Np9u09ScVIT5StEcO0LXMfpzndWOiwHX');
request.setRequestHeader("Content-Type", file.type);
},
url: serverUrl,
data: file,
processData: false,
contentType: false,
success: function(data) {
prompt("File available at: ", data.url);
},
error: function(data) {
var obj = jQuery.parseJSON(data);
prompt(obj.error);
}
});
});
});
</script>
</head>
</body>
</HTML>
어떤 도움이나 제안이라도 대단히 감사하겠습니다. 미리 감사드립니다.
10 개의 PDF 문서 URL을 동시에 구문 분석하기 위해 전송하는 경우 시간 제한이 발생할 가능성이 있습니까? Parse가 최근에 Parse.file 파일에 새 클래스를 추가했음을 알았습니다. https://parse.com/docs/js_guide#files-classes에 대한 경험이 있습니까? – jon220
한 번에 10 개의 PDF 문서가 전송된다는 질문에 대해 잘 모르겠습니다. 10 개의 Parse.Objects를 동시에 업로드하므로 동시에 10 개의 URL을 저장해도 문제가되지 않습니다. Parse.File에 대해서는 꽤 오랜 시간이 걸렸지 만 데이터의 Base64 문자열 표현을 보내야합니다. 즉, URL에서 PDF를 먼저 다운로드하여 변환해야한다는 의미입니다. 정말이 서버 쪽을해야합니다. –