diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java
index c90331b..3a5b525 100644
--- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java
+++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java
@@ -10,7 +10,6 @@ import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.media.MediaRecorder;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -43,17 +42,12 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-import okhttp3.Call;
-import okhttp3.Callback;
 import okhttp3.MediaType;
 import okhttp3.MultipartBody;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
 import okhttp3.Response;
-import retrofit2.http.Body;
 
 
 public class MainActivity extends BaseActivity implements MainContract.View, View.OnClickListener {
@@ -80,6 +74,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
     private List<String> filepath = new ArrayList<>();
     private List<String> filename = new ArrayList<>();
 
+    String sidData ="";
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -91,6 +86,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
         mPresenter = new MainPresenter(this);
         mMainData = new MainData();
         mChooseDeviceItemData = new ChooseDeviceItemData();
+        mPresenter.onGetSid();
     }
 
     @Override
@@ -235,6 +231,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
                 Log.e("eee", getPath(data.getData()));
             }
             //照片的uri
+//             mPresenter.onGetSid();
             onUploadFile(uriList, getResourceString(R.string.on_upload_image));
 //            onUploadFile1();
         }
@@ -365,6 +362,8 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
 
     //如果能改成用retrofit加rxjava最好,已經嘗試過三天的,可能有缺什麼,不過緊急所以先求功能
     private void onUploadFile(final ArrayList<String> uriList, String type) {
+
+//        ongetsid();
         showProgressDialog(type);
         new Thread(new Runnable() {
             @Override
@@ -404,45 +403,54 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
                 String apiname = "SYNO.FileStation.Upload";
                 String method = "upload";
                 String version = "2";
-                String sid = "Tx2aTlIDdA5zLsxYDOYP95AnZqw1iUaEBGnDbsszo1QqaJzIe3B7AFZY5quVBataqzdMt3h-59L-AUhM9R_5hQ";
+                String sid = "4CY9mdpmlP5eh8KGLob3h3bqm6VvygRIu8BPwMIOy3UlYGBJ3VkM7Dgtw-hLIdH3ipntHHmJDK7y72Tio9ybLk";
                 String path1 = "/仁武氯乙烯廠製造一課/1_SOP導讀";
                 Boolean a = true;
                 Boolean b = false;
 
                 OkHttpClient client = new OkHttpClient().newBuilder()
-                        .connectTimeout(30, TimeUnit.SECONDS)
-                        .readTimeout(30, TimeUnit.SECONDS)
-                        .writeTimeout(30, TimeUnit.SECONDS)
+                        .connectTimeout(60, TimeUnit.SECONDS)
+                        .readTimeout(60, TimeUnit.SECONDS)
+                        .writeTimeout(60, TimeUnit.SECONDS)
                         .build();
 //                MediaType mediaType = MediaType.parse("application/octet-stream");
-                MediaType mediaType = MediaType.parse("text/plain");
+//                MediaType mediaType = MediaType.parse("multiparty/form-data");
+                    MediaType mediaType = MediaType.parse("image/jpg");
                 MultipartBody.Builder buildernew = new MultipartBody.Builder()
                         .setType(MultipartBody.FORM)
-                        .addFormDataPart("api", apiname)
-                        .addFormDataPart("method", method)
-                        .addFormDataPart("version", version)
-                        .addFormDataPart("_sid", sid)
+//                        .addFormDataPart("api", apiname)
+//                        .addFormDataPart("method", method)
+//                        .addFormDataPart("version", version)
+//                        .addFormDataPart("_sid", sid)
                         .addFormDataPart("path",path1)
-                        .addFormDataPart("create_parents", ""+b)
-                        .addFormDataPart("overwrite", ""+a);
+                        .addFormDataPart("create_parents", a.toString())
+                        .addFormDataPart("overwrite", a.toString())
+                        .addFormDataPart("data", "")
+                        .addFormDataPart("success", "");
+                Log.e("test_path",path1);
+                Log.e("test_create_parents",b.toString());
+                Log.e("test_overwrite",a.toString());
+
 //                        .addFormDataPart("file", "b525a7db0c5da640_1.jpg",
 //                            RequestBody.create(mediaType,new File("/storage/emulated/0/Watashi AHD V.2/temp_images/b525a7db0c5da640_1.jpg")
 //                            ));
-                Log.e("test",""+buildernew.build().parts().get(0));
+//                Log.e("test",""+buildernew.build().parts().get(0));
                 for (String path : uriList) {
                     File uploadFile = new File(path);
 //                    RequestBody fileBody = RequestBody.create(mediaType,uploadFile);
                     buildernew.addFormDataPart("file", uploadFile.getName(),
-                            RequestBody.create(MediaType.parse("application/octet-stream"), path));
-                    Log.e("pathname", uploadFile.getName());
+                            RequestBody.create(MediaType.parse("multiparty/form-data"), path));
+//                    RequestBody.create(MediaType.parse("application/octet-stream"), path));
+
+                    Log.e("test_filename", uploadFile.getName());
                     Log.e("path", path);
-                    Log.e("file", uploadFile.getAbsolutePath());
+                    Log.e("test_file", uploadFile.getAbsolutePath());
                 }
                 RequestBody body = buildernew.build();
 //                buildernew.build();
 
                 Request request = new Request.Builder()
-                        .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi?api="+apiname+"&method="+method+"&version="+version+"&_sid="+sid)
+                        .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi?api="+apiname+"&method="+method+"&version="+version+"&_sid="+sidData)
 //                        .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi")
                         .method("POST", body)
 //                        .header("api",apiname)
@@ -453,7 +461,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
 //                        .post(buildernew.build())
                         .build();
 
-                Log.e("requrstBody", request.toString());
+                Log.e("test_url", request.url().toString());
                 try {
                     Response response = client.newCall(request).execute();
                     Log.e("response", response.body().string());
@@ -517,6 +525,26 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
         }).start();
     }
 
+    private void ongetsid(){
+      new Thread(new Runnable() {
+          @Override
+          public void run() {
+              OkHttpClient client = new OkHttpClient().newBuilder()
+                      .build();
+              Request request = new Request.Builder()
+                      .url("https://webapp.fpcitc.com.tw/SOP/api/FileUpload/GetLogin")
+                      .method("GET", null)
+                      .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                      .build();
+              try {
+                  Response response = client.newCall(request).execute();
+                  Log.e("response", response.body().string());
+              } catch (IOException e) {
+                  e.printStackTrace();
+              }
+          }
+      }).start();
+    }
     @Override
     public void setCOData(List<COResponse> adapterData) {
         dialogString.clear();
@@ -567,6 +595,12 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
         showItemDialog(dialogString, onShootTypeCategoryDialogItemClick);
     }
 
+    @Override
+    public void setSIDData(String sid) {
+        sidData = sid;
+
+    }
+
     private DialogInterface.OnClickListener onCompanyDialogItemClick = new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java
index d299038..201f0fc 100644
--- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java
+++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java
@@ -3,6 +3,7 @@ package com.example.audiovisualrecord.ui.main;
 
 import com.example.audiovisualrecord.base.BaseView;
 import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResponse;
+
 import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResponse;
 import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDResponse;
 import com.example.audiovisualrecord.utils.api.searchmntfct.MNTFCTResponse;
@@ -17,6 +18,7 @@ public interface MainContract {
         void setDPNMData(List<PMFCTResponse> adapterData);
         void setEQKDData(List<EQKDResponse> adapterData);
         void setTYPEData(List<TYPEResponse> adapterData);
+        void setSIDData(String sid);
     }
 
     interface Presenter<V extends MainContract.View> {
@@ -27,5 +29,6 @@ public interface MainContract {
         void onGetSHIFTData(String CO, String PMFCT);
         void segVideo(String path,String name);
         void onGetTYPEData(String CO,String PMFCT);
+        void onGetSid();
     }
 }
diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java
index 074b6b7..d44eafc 100644
--- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java
+++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java
@@ -25,6 +25,7 @@ public class MainData {
     private List<PMFCTResponse> mPMFCTDataList;
     private List<EQKDResponse> mEQKDDataList;
     private List<TYPEResponse> mTYPEDataList;
+    private String MSidData;
 
 
     public List<COResponse> getmCODataList() {
@@ -67,6 +68,14 @@ public class MainData {
         this.mTYPEDataList = mTYPEDataList;
     }
 
+    public String getMSidData() {
+        return MSidData;
+    }
+
+    public void setMSidData(String MSidData) {
+        this.MSidData = MSidData;
+    }
+
     //    public String getmCO() {
 //        return mMNTCO;
 //    }
diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java
index c181326..55e4696 100644
--- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java
+++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java
@@ -11,6 +11,7 @@ import com.example.audiovisualrecord.utils.api.ApiService;
 import com.example.audiovisualrecord.utils.api.HttpMethods;
 import com.example.audiovisualrecord.utils.api.apidata.CORequest.CORequest;
 import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResultList;
+import com.example.audiovisualrecord.utils.api.apidata.searchsid.SIDDataList;
 import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPERequest;
 import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResultList;
 import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDRequest;
@@ -205,6 +206,34 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
     }
 
     @Override
+    public void onGetSid() {
+//        TYPERequest mTypeRequest = new TYPERequest(KEY_SEARCH_TYPE,USER_ID,CO, PMFCT);
+        String url = view.getResourceString(R.string.api_on_getSID);
+        compositeDisposable.add(api.getSID(url)
+                .subscribeOn(schedulerProviderImp.io())
+                .observeOn(schedulerProviderImp.ui())
+                .subscribeWith(new DisposableObserver<SIDDataList>() {
+                    @Override
+                    public void onNext(SIDDataList mSIDDataList) {
+                        view.setSIDData(mSIDDataList.getsIdDataList().getSid());
+                        Log.e("sss",mSIDDataList.getSuccess());
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+//                        view.showDialogCaveatMessage(view.getResourceString( R.string.add_device_error));
+                        Log.e("aaaa",e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                })
+        );
+    }
+
+    @Override
     public void segVideo(String path,String name) {
         File video = new File(path);
         int sizeLimit = 50 * 1024 * 1024;
diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java
index 3e4c2a1..6de2e62 100644
--- a/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java
+++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java
@@ -4,6 +4,7 @@ import com.example.audiovisualrecord.utils.api.apidata.CORequest.CORequest;
 import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResultList;
 import com.example.audiovisualrecord.utils.api.apidata.login.LoginRequest;
 import com.example.audiovisualrecord.utils.api.apidata.login.LoginResponse;
+import com.example.audiovisualrecord.utils.api.apidata.searchsid.SIDDataList;
 import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPERequest;
 import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResultList;
 import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDRequest;
@@ -15,6 +16,7 @@ import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTResultList;
 
 import io.reactivex.Observable;
 import retrofit2.http.Body;
+import retrofit2.http.GET;
 import retrofit2.http.POST;
 import retrofit2.http.Url;
 
@@ -31,4 +33,6 @@ public interface ApiService {
     Observable<TYPEResultList>getTYPE(@Url String url, @Body TYPERequest mTypeRequest);
     @POST
     Observable<LoginResponse> onLogin(@Url String url, @Body LoginRequest mLoginRequest);
+    @GET
+    Observable<SIDDataList> getSID(@Url String url);
 }
diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java
new file mode 100644
index 0000000..4c078fb
--- /dev/null
+++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java
@@ -0,0 +1,30 @@
+package com.example.audiovisualrecord.utils.api.apidata.searchsid;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class SIDDataList {
+    @SerializedName("data")
+    @Expose
+    private getSID sIdDataList;
+
+    @SerializedName("success")
+    @Expose
+    private java.lang.String success;
+
+    public getSID getsIdDataList() {
+        return sIdDataList;
+    }
+
+    public void setsIdDataList(getSID sIdDataList) {
+        this.sIdDataList = sIdDataList;
+    }
+
+    public java.lang.String getSuccess() {
+        return success;
+    }
+
+    public void setSuccess(java.lang.String success) {
+        this.success = success;
+    }
+}
diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java
new file mode 100644
index 0000000..9dcd1bc
--- /dev/null
+++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java
@@ -0,0 +1,18 @@
+package com.example.audiovisualrecord.utils.api.apidata.searchsid;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+public class getSID {
+    @SerializedName("sid")
+    @Expose
+    private java.lang.String sid;
+
+    public java.lang.String getSid() {
+        return sid;
+    }
+
+    public void setSid(java.lang.String sid) {
+        this.sid = sid;
+    }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 916803c..3d684c9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -45,6 +45,8 @@
     <string name="api_on_getEQNO">SearchEQNO</string>
     <string name="api_on_Login">https://cloud.fpcetg.com.tw/FPC/API/FM/SopRecord_API/INFO/Access</string>
     <string name="api_on_DisposableToken">DisposableToken</string>
+    <string name="api_on_getSID">https://webapp.fpcitc.com.tw/SOP/api/FileUpload/GetLogin</string>
+
 
     <!--addDevice部分-->
     <string name="get_pmfct_error_no_data">廠課無資料</string>
@@ -64,5 +66,8 @@
     <string name="add_device_no_data_file">檔案還未選擇</string>
 
     <string name="add_device_error">查詢資料失敗,請重試或檢查網路狀態,或檢查資料是否正確</string>
+
+    <!-- getsid-->
+    <string name="get_sid_error_no_data">sid無資料</string>
 </resources>