科尔多瓦文件传输插件未将视频上传到服务器

Posted

技术标签:

【中文标题】科尔多瓦文件传输插件未将视频上传到服务器【英文标题】:cordova File Transfer plugin not uploading video to Server 【发布时间】:2017-01-11 10:53:34 【问题描述】:

    我正在创建一个混合应用程序,我想在其中上传视频到 服务器。有时它会将视频上传到服务器,但大多数 time Plugin 显示上传进度到 99% 然后给出 成功回调中为 null。 提前致谢。 :-)

    /********* OPENING CAMERA TO CPTURE VIDEO ***********/
    function make_Video()
    
        // capture callback
        var captureSuccess = function(mediaFiles) 
    
            var i, len , video_path;
    
            if(mediaFiles.length > 0)
            
    
                for (i = 0, len = mediaFiles.length; i < len; i += 1)
                
                    video_path = mediaFiles[i].fullPath;
    
                    Upload_Video(video_path);
    
                
    
            
    
        ;
    
        // capture error callback
        var captureError = function(error)
        
          console.log('Error Code: ' + error.code);
        ;
    navigator.device.capture.captureVideo(captureSuccess, captureError,  quality: 100,destinationType: Camera.DestinationType.FILE_URI );
    
    
    
    /****************STORING VIDEO ON SERVER******************/
    function Upload_Video(video_path)
    
        var server =  server_link; // MY SERVER LINK
        var params = 'user_id':logged_in_user_id,'action':'update_intro_video';
    
        if (server)
        
    
                // Specify transfer options
                $('#modal_first_line').text(0+" %"+" Uploaded");
                $('#new_modal').show();
                var options         = new FileUploadOptions();
                options.fileKey     = "user_video";
    
          options.fileName = video_path.substr(video_path.lastIndexOf('/')+1);
    
                options.mimeType    = "video/mp4";
                options.chunkedMode = false;
                options.httpMethod  = "POST";
                options.params      = params;
                // Transfer picture to server
                var ft = new FileTransfer();
    
    
     //progree bar
     ft.onprogress = function(progressEvent) 
    
    if (progressEvent.lengthComputable)  var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100); $('#modal_first_line').text(perc+" %"+"
    Uploaded");  else $('#new_modal').hide();
           console.log("sorry! Upload Failed...");   ;
    
                ft.upload(video_path, encodeURI(server) , function(data) 
                            $('#new_modal').hide();
                            console.log("SERVER RESPONSE: " + JSON.stringify(data));
                          ,
                          function(error)
                          
                            $('#new_modal').hide();
                            console.log("sorry! Upload Failed...");
                          , options);
        
    
        else
                $('#new_modal').hide();
                console.log("sorry! Can't Upload File.");;
        
    
    

【问题讨论】:

【参考方案1】:

解决了。 问题出在服务器端。配置正在制作 麻烦。 post_max_size 设置为 8Mb,所以当视频限制 超过 8MB,服务器不允许保存视频。一世 将 post_max_size 增加到 100MB。增加 post_max_size ,我做了以下步骤 1.我在根目录下创建了一个文件.user.ini 2. 我在这个文件中放了以下代码 file_uploads = O post_max_size = 100M upload_max_filesize = 200M

Hope it will help someone.

【讨论】:

以上是关于科尔多瓦文件传输插件未将视频上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章

从cordova文件传输插件上传文件到nodeJS服务器

如何使用科尔多瓦文件传输下载 base 64 图像

无法使用 Cordova 文件传输插件上传到 SAP Content Server

jenkins 构建后传输文件到服务器

ionic 3从相机上传图像不使用文件,文件传输,文件上传插件

视频上传和流式传输(使用 Laravel VueJs 上传和显示所有类型的文件视频、图像、文档等)