Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从改装上传到wcf后无法播放视频_C#_Android_Wcf_Upload_Retrofit - Fatal编程技术网

C# 从改装上传到wcf后无法播放视频

C# 从改装上传到wcf后无法播放视频,c#,android,wcf,upload,retrofit,C#,Android,Wcf,Upload,Retrofit,我想上传一个视频改造到WCF服务。我也可以上传视频,我可以将此视频保存在服务器上的特定路径中。 但是,不幸的是,此视频通过任何媒体播放器存储在服务器上后无法播放。我尝试了以下“WCF”和“Android Java”代码: 在Android中: @Multipart @POST("MYSERVER/UploadVideo/") @Headers({ "Content-Type: multipart/form-data", "Accep

我想上传一个视频改造到WCF服务。我也可以上传视频,我可以将此视频保存在服务器上的特定路径中。 但是,不幸的是,此视频通过任何媒体播放器存储在服务器上后无法播放。我尝试了以下“WCF”和“Android Java”代码:

在Android中:

@Multipart
    @POST("MYSERVER/UploadVideo/")
    @Headers({
            "Content-Type: multipart/form-data",
            "Accept: application/json;charset=utf-8"
    })
    Call<Verify> uploadVideo(
            @Part MultipartBody.Part images

    );

 RequestBody requestFile =
RequestBody.create(MediaType.parse("multipart/form-data"), file);

fileBody =
  MultipartBody.Part.createFormData("videoData", file.getName(), requestFile);

Call<Verify> call = service.uploadVideo(fileBody);
正如我告诉你的,我可以用正确的大小和mp4格式保存视频。但是视频不能用任何媒体播放器播放

 I hope this will helpful for you. Retrofit with rxJava


 @Headers({
        "Accept: application/json"
 })
  @Multipart
  @POST("/api/uploadfiles")
   Observable<UploadFileModel> uploadData(@Header("Authorization") String 
   headerKey, @Part("destFolderPath") RequestBody destFolderPath, @Part 
    MultipartBody.Part file);




/**
 *  
 * @param fileName Name of Uploaded File here
 * @param mineType MineType of uploaded File
 * @param byteArray i convert the uri to byte array by InputStream  you can use 
  file also
 */


public void getData(String fileName,String mineType , byte byteArray[]) {

    //
    Log.e("File Name", fileName);
    Log.e("MineType", mineType);



      String path = ""; // this is destination folder path where i want to upload the file
    RequestBody description = RequestBody.create(MultipartBody.FORM, path);


    String file_Name = fileName;

    // create RequestBody instance from file
    RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), byteArray);
    // MultipartBody.Part is used to send also the actual file name

    MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file_Name, requestBody);


    AppController appController = AppController.create(mContext);
    ApiInterface apiInterface = appController.getUserService();

    Disposable disposable = apiInterface.uploadData(sharedPreferences.getString(TOEKNTYPE, "") + " " + sharedPreferences.getString(ACCESS_TOKEN, ""), description, fileToUpload)
            .subscribeOn(appController.subscribeScheduler())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<UploadFileModel>() {
                @Override
                public void accept(UploadFileModel uploadFileModel) {
                    loading.set(GONE);

                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) {

                    loading.set(GONE);
                    getActivity(mContext).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

                    Toast.makeText(mContext, "Something wents wrong", Toast.LENGTH_SHORT).show();


                }
            });

    compositeDisposable.add(disposable);


}
我希望这对您有所帮助。使用rxJava进行改造
@标题({
“接受:应用程序/json”
})
@多部分
@POST(“/api/uploadfiles”)
可观察的上传数据(@Header(“授权”)字符串
headerKey,@Part(“destFolderPath”)请求主体destFolderPath,@Part
MultipartBody.Part文件);
/**
*  
*@param fileName此处上载文件的名称
*@param mineType上传文件的mineType
*@param byteArray我通过您可以使用的InputStream将uri转换为字节数组
文件也
*/
public void getData(字符串文件名、字符串类型、字节字节数组[]){
//
Log.e(“文件名”,文件名);
Log.e(“地雷型”,地雷型);
String path=”“;//这是我要上载文件的目标文件夹路径
RequestBody description=RequestBody.create(MultipartBody.FORM,path);
字符串文件名=文件名;
//从文件创建RequestBody实例
RequestBody RequestBody=RequestBody.create(MediaType.parse(“*/*”),byteArray);
//Part还用于发送实际的文件名
MultipartBody.Part fileToUpload=MultipartBody.Part.createFormData(“文件”,文件名,requestBody);
AppController-AppController=AppController.create(mContext);
ApiInterface ApiInterface=appController.getUserService();
一次性使用=apiInterface.uploadData(SharedReferences.getString(TOEKNTYPE,“”+“”+SharedReferences.getString(ACCESS_TOKEN,“”),描述,fileToUpload)
.subscribeOn(appController.subscribeScheduler())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
public void accept(UploadFileModel UploadFileModel){
加载。设置(消失);
}
},新消费者(){
@凌驾
公共无效接受(可丢弃可丢弃){
加载。设置(消失);
getActivity(mContext.getWindow().clearFlags(WindowManager.LayoutParams.FLAG\u不可触摸);
Toast.makeText(mContext,“有什么不对劲”,Toast.LENGTH_SHORT.show();
}
});
可合成。添加(一次性);
}
我希望这会对您有所帮助。使用rxJava进行改造
@标题({
“接受:应用程序/json”
})
@多部分
@POST(“/api/uploadfiles”)
可观察的上传数据(@Header(“授权”)字符串
headerKey,@Part(“destFolderPath”)请求主体destFolderPath,@Part
MultipartBody.Part文件);
/**
*  
*@param fileName此处上载文件的名称
*@param mineType上传文件的mineType
*@param byteArray我通过您可以使用的InputStream将uri转换为字节数组
文件也
*/
public void getData(字符串文件名、字符串类型、字节字节数组[]){
//
Log.e(“文件名”,文件名);
Log.e(“地雷型”,地雷型);
String path=”“;//这是我要上载文件的目标文件夹路径
RequestBody description=RequestBody.create(MultipartBody.FORM,path);
字符串文件名=文件名;
//从文件创建RequestBody实例
RequestBody RequestBody=RequestBody.create(MediaType.parse(“*/*”),byteArray);
//Part还用于发送实际的文件名
MultipartBody.Part fileToUpload=MultipartBody.Part.createFormData(“文件”,文件名,requestBody);
AppController-AppController=AppController.create(mContext);
ApiInterface ApiInterface=appController.getUserService();
一次性使用=apiInterface.uploadData(SharedReferences.getString(TOEKNTYPE,“”+“”+SharedReferences.getString(ACCESS_TOKEN,“”),描述,fileToUpload)
.subscribeOn(appController.subscribeScheduler())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
public void accept(UploadFileModel UploadFileModel){
加载。设置(消失);
}
},新消费者(){
@凌驾
公共无效接受(可丢弃可丢弃){
加载。设置(消失);
getActivity(mContext.getWindow().clearFlags(WindowManager.LayoutParams.FLAG\u不可触摸);
Toast.makeText(mContext,“有什么不对劲”,Toast.LENGTH_SHORT.show();
}
});
可合成。添加(一次性);
}
 I hope this will helpful for you. Retrofit with rxJava


 @Headers({
        "Accept: application/json"
 })
  @Multipart
  @POST("/api/uploadfiles")
   Observable<UploadFileModel> uploadData(@Header("Authorization") String 
   headerKey, @Part("destFolderPath") RequestBody destFolderPath, @Part 
    MultipartBody.Part file);




/**
 *  
 * @param fileName Name of Uploaded File here
 * @param mineType MineType of uploaded File
 * @param byteArray i convert the uri to byte array by InputStream  you can use 
  file also
 */


public void getData(String fileName,String mineType , byte byteArray[]) {

    //
    Log.e("File Name", fileName);
    Log.e("MineType", mineType);



      String path = ""; // this is destination folder path where i want to upload the file
    RequestBody description = RequestBody.create(MultipartBody.FORM, path);


    String file_Name = fileName;

    // create RequestBody instance from file
    RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), byteArray);
    // MultipartBody.Part is used to send also the actual file name

    MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file_Name, requestBody);


    AppController appController = AppController.create(mContext);
    ApiInterface apiInterface = appController.getUserService();

    Disposable disposable = apiInterface.uploadData(sharedPreferences.getString(TOEKNTYPE, "") + " " + sharedPreferences.getString(ACCESS_TOKEN, ""), description, fileToUpload)
            .subscribeOn(appController.subscribeScheduler())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<UploadFileModel>() {
                @Override
                public void accept(UploadFileModel uploadFileModel) {
                    loading.set(GONE);

                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) {

                    loading.set(GONE);
                    getActivity(mContext).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

                    Toast.makeText(mContext, "Something wents wrong", Toast.LENGTH_SHORT).show();


                }
            });

    compositeDisposable.add(disposable);


}