簡體   English   中英

從Android將文件上傳到節點服務器時出錯,“權限被拒絕”

[英]Error while uploading file from Android to Node Server “Permission denied”

我正在嘗試使用Android應用程序將文件上傳到筆記本電腦上的Node js服務器。 雖然它可以很好地處理html,但是當嘗試在Andorid中執行相同操作時,出現以下錯誤。 該服務器是一個簡單的Node服務器,當我使用其他發布文件的方法時,它似乎運行良好。

Error in upload with ID: 10ff84ba-0768-4423-a955-7a1a4f68d1aa. /init.rc: open failed: EACCES (Permission denied)
java.io.FileNotFoundException: /init.rc: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileInputStream.<init>(FileInputStream.java:76)
at com.alexbbb.uploadservice.BinaryUploadFile.getStream(BinaryUploadFile.java:34)
at com.alexbbb.uploadservice.BinaryUploadTask.writeBody(BinaryUploadTask.java:29)
at com.alexbbb.uploadservice.HttpUploadTask.upload(HttpUploadTask.java:131)
at com.alexbbb.uploadservice.HttpUploadTask.run(HttpUploadTask.java:65)
at com.alexbbb.uploadservice.UploadService.onHandleIntent(UploadService.java:127)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:442)
at java.io.FileInputStream.<init>(FileInputStream.java:76) 
at com.alexbbb.uploadservice.BinaryUploadFile.getStream(BinaryUploadFile.java:34) 
at com.alexbbb.uploadservice.BinaryUploadTask.writeBody(BinaryUploadTask.java:29) 
at com.alexbbb.uploadservice.HttpUploadTask.upload(HttpUploadTask.java:131) 
at com.alexbbb.uploadservice.HttpUploadTask.run(HttpUploadTask.java:65) 
at com.alexbbb.uploadservice.UploadService.onHandleIntent(UploadService.java:127) 
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.os.HandlerThread.run(HandlerThread.java:61) 
01-01 08:17:17.382 20517-25217/jorc.com.fileupload2 W/com.alexbbb.uploadservice.BinaryUploadTask: Error in uploadId 5d59b0bb-5f5f-4926-b17d-87a8e408af4f on attempt 1. Waiting 1s before next attempt java.io.FileNotFoundException: /init.rc: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileInputStream.<init>(FileInputStream.java:76)
at com.alexbbb.uploadservice.BinaryUploadFile.getStream(BinaryUploadFile.java:34)
at com.alexbbb.uploadservice.BinaryUploadTask.writeBody(BinaryUploadTask.java:29)
at com.alexbbb.uploadservice.HttpUploadTask.upload(HttpUploadTask.java:131)
at com.alexbbb.uploadservice.HttpUploadTask.run(HttpUploadTask.java:65)
at com.alexbbb.uploadservice.UploadService.onHandleIntent(UploadService.java:127)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)

在此處輸入圖片說明

稍后再試,我從logcat得到以下確認,但仍然沒有文件上傳到我的服務器:

01-01 08:57:43.032 1837-1837/jorc.com.fileupload2 I/UploadServiceDemo: Upload with ID 2b47d6b5-7bf6-4cf0-aeec-462b20c40ffd is completed: 200, <!DOCTYPE html>
                                                                       <html>
                                                                       <head>
                                                                         <title>File Uploader</title>
                                                                         <link href="app.css" rel="stylesheet">
                                                                       </head>

看來您正在使用來自githib的此倉庫: https : //github.com/alexbbb/android-upload-service在這種情況下,請轉到MainActivity.java文件並添加

.addHeader("X-Parse-Application-Id", "your_key")
.addHeader("X-Parse-REST-API-Key", "your_key2")

.addHeader("file-name", new File(fileToUploadPath).getName())

僅需查看文件就可以上傳到parse.com。

為了使其更容易在設備上添加:

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
     alertDialog.setTitle("Alert");
     alertDialog.setMessage(serverResponseMessage);
     alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
     new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int which) {
          dialog.dismiss();
       }
     });
alertDialog.show();

在此下方顯示您上傳的文件URL。

public void onCompleted(String uploadId, int serverResponseCode, String serverResponseMessage) {
            progressBar.setProgress(0);

它明確寫在您的logcat權限被拒絕中,您需要在清單中提供READ權限。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM