3.9.11.12. 文件上传

要上传文件,应该先获得一个访问令牌,在后续请求中要使用这个令牌。

假设我们有如下文件上传表单:

  1. <form id="fileForm">
  2. <h2>Select a file:</h2>
  3. <input type="file" name="file" id="fileUpload"/>
  4. <br/>
  5. <button type="submit">Upload</button>
  6. </form>
  7. <h2>Result:</h2>
  8. <img id="uploadedFile" src="" style="display: none"/>

我们将使用 jQuery 进行上传,并使用 data 获取返回的 JSON,其内容是为上传的文件新建的 FileDescriptor 实例。之后我们可以将访问令牌作为参数通过其 FileDescriptor 的 id 访问上传的文件:

  1. $('#fileForm').submit(function (e) {
  2. e.preventDefault();
  3. var file = $('#fileUpload')[0].files[0];
  4. var url = 'http://localhost:8080/app/rest/v2/files?name=' + file.name; // send file name as parameter
  5. $.ajax({
  6. type: 'POST',
  7. url: url,
  8. headers: {
  9. 'Authorization': 'Bearer ' + oauthToken // add header with access token
  10. },
  11. processData: false,
  12. contentType: false,
  13. dataType: 'json',
  14. data: file,
  15. success: function (data) {
  16. alert('Upload successful');
  17. $('#uploadedFile').attr('src',
  18. 'http://localhost:8080/app/rest/v2/files/' + data.id + '?access_token=' + oauthToken); // update image url
  19. $('#uploadedFile').show();
  20. }
  21. });
  22. });