recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment publier et soumettre une image et une chaîne au serveur lors du téléchargement de l'image?

Lors du téléchargement de photos, vous devez fournir le jeton de connexion de l'utilisateur et les photos à télécharger. Mais comment deux types de données différents peuvent-ils être publiés ensemble sur le serveur ?

         mui.init();
         function fsubmit(){  
            var data = new FormData(mui('#uploadForm')[0]); //获取图片
            $.ajax({  
                url: 'http://192.168.1.8/api/user-center/avatar',  
                type: 'POST',  
                data: {
                    key:localStorage.getItem('key'), //获取本地的登录令牌
                    avatar:data        //图片
                }, 
                cache: false,  
                processData: false,  
                contentType: false ,
                success:function(data){
                    console.log(data.datas.testURL);
                },
                error:function(xhr,type,error){
                    console.log(xhr.status+xhr.responseText);
                    //一直返回401,没有权限
                }
            });
            return false;  
        }
仅有的幸福仅有的幸福2709 Il y a quelques jours902

répondre à tous(3)je répondrai

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-28 09:27:01

    Changez le type de données de la publication en formdata, puis chargez l'objet dans formdata. Voici un exemple :

        var fd = new FormData();
        var file_data = $('input[type="file"]')[0].files; // for multiple files
        for(var i = 0;i<file_data.length;i++){
            fd.append("file_"+i, file_data[i]);
        }
        var other_data = $('form').serializeArray();
        $.each(other_data,function(key,input){
            fd.append(input.name,input.value);
        });
        $.ajax({
            url: 'caiyongji.com/segmentfault',
            data: fd,
            contentType: false,
            processData: false,
            type: 'POST',
            success: function(data){
                console.log(data);
            }
        });

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-28 09:27:01

    Vous avez déjà créé le nouveau FormData, alors n'enregistrez pas les objets vous-même. Utilisez simplement le nouveau...

    .
    mui.init();
    function fsubmit() {
        var fData = new FormData(); //这里用空的就行,后边再append
        fData.append('file', mui('#uploadForm')[0], '不知道你文件名是啥你自己去整下.jpg');
        fData.append('key', localStorage.getItem('key')); //获取本地的登录令牌
        $.ajax({
            url: 'http://192.168.1.8/api/user-center/avatar',
            type: 'POST',
            data: fData,
            processData: false,
            contentType: false,
            success: function (data) {
                console.log(data.datas.testURL);
            },
            error: function (xhr, type, error) {
                console.log(xhr.status + xhr.responseText);
            }
        });
        return false;
    }

    Ensuite le backend est légèrement ajusté pour pouvoir recevoir FormData.

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-28 09:27:01

    Merci pour l'invitation :

    Le jeton peut être placé dans les en-têtes et le backend vérifie le jeton séparément, tandis que cette interface ne traite que les images

    répondre
    0
  • Annulerrépondre