簡體   English   中英

無法讓用戶在注冊過程中上傳個人資料圖片(Parse.com/JS SDK)

[英]Unable to let user upload profile picture in sign up process (Parse.com/JS SDK)

使用parse.com和JavaScript SDK。 代碼應該讓用戶注冊並上傳個人資料圖片。

更新了,這是我正在使用的代碼,它在嘗試注冊用戶時返回錯誤控制台消息is Uncaught TypeError: Cannot read property 'length' of undefined

> $('#SignUp').click(function(e) {
>     UserSignUp(); });
> 
> 
> function UserSignUp() {
> 
>     var user = new Parse.User();
>     userFirstname = $('#firstnamesu').val();
>     userLastname = $('#lastnamesu').val();
>     userUsername = $('#usernamesu').val();
>     userGender = $('#gendersu').val();
>     Email = $('#emailsu').val();
>     PWP = $('#passwordsu').val();
> 
>     user.set("FirstName", userFirstname);
>     user.set("LastName", userLastname);
>     user.set("username", userUsername);
>     user.set("gender", userGender);
>     user.set("email", Email);
>     user.set("password", PWP);
> 
> 
>      var fileUploadControl = $("#pic")[0];    if (fileUploadControl.files.length > 0) {    var file =
> fileUploadControl.files[0];    var name = "photo.png";
> 
>    var parseFile = new Parse.File(name, file);
> 
>    //put this inside if {    parseFile.save().then(function() {    //
> The file has been saved to Parse.    }, function(error) {    // The
> file either could not be read, or could not be saved to Parse.
>     });
> 
>     // Be sure of ur parameters name
>     // prod is extend of my class in parse from this: var prod = new products();
>     user.set("ProfilePic", parseFile);
>     user.save();    } ////////////Runs parse after the SignUp button has been clicked by the user////////////////////
> 
> $('#SignUp').click(function(e) {
>     UserSignUp(); });
> 
>     user.signUp(null, {
>         success: function(user) {
>             if (!user.existed()) {
>                 window.location.href = "user_home.html";
>             } else {
>                 alert("NO WAY BUDDY");
>             }
>         },
>         error: function(user, error) {
> 
>         }
>     });

我能夠通過使用以下代碼回答我自己的問題。 基本上,這是一個將代碼重構為更合理的順序來解決它的情況。 我在這里遇到的另一個問題沒有幫助解決問題。 parse.com用戶注冊無法正常工作的問題

   $('#SignUp').click(function(e) {

    UserSignUp();
});


function UserSignUp() {

      var fileUploadControl = $("#pic")[0];
    if (fileUploadControl.files.length > 0) {
       var file = fileUploadControl.files[0];
       var name = "photo.png";


   var user = new Parse.User();

   var parseFile = new Parse.File(name, file);
   userFirstname = $('#firstnamesu').val();
   userLastname = $('#lastnamesu').val();
   userUsername = $('#usernamesu').val();
   userGender = $('#gendersu').val();
   Email = $('#emailsu').val();
   PWP = $('#passwordsu').val();


   user.set("ProfilePic", parseFile);
   user.set("FirstName", userFirstname);
   user.set("LastName", userLastname);
   user.set("username", userUsername);
   user.set("gender", userGender);
   user.set("email", Email);
   user.set("password", PWP);


var uri = encodeURI('http://XXXX.com/XXXX.html');

  user.signUp(null, {
    success: function(user) {

         if (!user.existed()) {
                window.location.href = uri;
            } 

    },
    error: function(user, error) {
      // Show the error message somewhere and let the user try again.

    }
  });


};
}

第一個建議,它將使您的代碼更長一些,但它會告訴您錯誤發生的位置。

function ifUndeforNull(val){
 var ret = false;
 try{
   if((val == undefined)|| (val==null)){
    ret = true;
   } 
  }catch(ex){
   console.log("Error:"+ex);
  }
 return ret;
}

那么你檢查你的val是未定義的還是null。

if(ifUndeforNull(userFirstname)){ 
   console.log('User First Name Null or Undefined');
}

將整個包裝在try {} catch {}中並使用日志記錄也會有所幫助。

最后,我將使用var聲明變量,例如userFirstName,因為有時候瀏覽器在未指定時會非常不標准。

暫無
暫無

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

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