Télécharger et enregistrer l'image sur le serveur sans les rafraîchir à l'aide d'Ajax et ASP.NET

J'ai une VB ASP.net la page qui permet à l'utilisateur de télécharger, de cultures et d'enregistrer l'image et ceci se produit dedans une boîte de dialogue de je ne veux pas d'actualisation la page. Donc, je suis en train d'utiliser Ajax et ne sais pas si c'est possible.

Est-il un moyen de laisser ce travail à l'aide de mon code? et si non est-il une solution simple?

Remarque: j'ai testé tous ces ASP codes et a bien fonctionné sans Ajax

Le chargement normal, c'est comme:

Private Sub btnUpoadToCrop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpoadToCrop.Click

    Dim objUpload As New Upload
    objUpload.MaxLength = 4000000

    '''' Upload Image File
    If objUpload.FileFieldLength(flImg) <> 0 Then

        Dim flImg As HttpPostedFile = Request.Files(0)
        Dim oFolder As String = "\media\temp-uploads\"
        Dim strName As String = System.IO.Path.GetFileName(flImg.FileName).Replace(" " & "%20", "_").ToString
        Dim oFile As String = oFolder + strName

        '''' Save Original Photo
        flImg.SaveAs(HttpContext.Current.Server.MapPath(oFile))


    End If

End Sub

ESSAYER AJAX

Et parce que je ne pouvais pas accéder à la flImg Image déposée donc essayé d'envoyer des variables de l'Ajax qui n'a pas fonctionné avec moi, et la console de retour de 500 (Erreur Interne du Serveur)

VB.NET

   Public Shared Function UploadSource(ByVal src As String, ByVal strName As String, ByVal ext As String) As String

    '''' Upload Image File

    Dim filesCollection As HttpFileCollection = HttpContext.Current.Request.Files
    Dim fileName = filesCollection(0)
    Dim Name As String = System.IO.Path.GetFileName(fileName.FileName).Replace(" " & "%20", "_").ToString

    Dim oFolder As String = "\media\temp-uploads\"
    Dim oFile As String = oFolder + Name

    '''' Save Original Photo

    fileName.SaveAs(HttpContext.Current.Server.MapPath(oFile))

End Function

jQUERY

    $(document).ready(function() {

        // Ajax Upload
        var _src, _path, _name, _ext;
        $("#<%= flImg.ClientID%>").change(function () {
            //console.dir(this.files[0]);
            var val = $(this).val();    
            if (val != "") {
                _src = val;
                _name = _src.substr(0, _src.lastIndexOf('.'));
                _ext = _src.split('.').pop();
                _ext = _ext.toLowerCase();
                alert(_ext);
            }
            else {
                _src = "";
            }
        }).trigger('change');
        $(document).on("click", "#UploadSource", function () {
            if (_src != "") {
                alert(_name);
                $.ajax({
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    url: '/ImgCropper.aspx/UploadSource',
                    // *** I have set values for variables for test
                    data: "{'src':'" + "xyz.jpg" + "','name':'" + "xyz"+ "','ext':'" + "jpg" + "'}",
                    async: false,
                    success: function (response) {

                   },
                   error: function () {
                       alert("some problem in saving data");
                   }
               });
            }


        });
     });

Ensuite essayé sans l'envoi de variables dans les données Ajax avec cette fonction et sans espoir tout de même:

Public Shared Function UploadSource() As String


    '''' Upload Image File

    Dim filesCollection As HttpFileCollection = HttpContext.Current.Request.Files
    Dim fileName = filesCollection(0)
    Dim Name As String = System.IO.Path.GetFileName(fileName.FileName).Replace(" " & "%20", "_").ToString


    Dim oFolder As String = "\media\temp-uploads\"
    Dim oFile As String = oFolder + Name

    '''' Save Original Photo
    fileName.SaveAs(HttpContext.Current.Server.MapPath(oFile))


End Function
Erreur de Serveur interne 500 pourrait signifier que vous pourriez avoir à augmenter la limite de téléchargement en vous web.fichier de configuration, essayez de télécharger une petite image pour voir si cela fonctionne. également dans votre code serveur, vous pouvez ajouter un sur le gestionnaire d'erreur pour avoir une vue plus détaillée de l'erreur.
Je suis en essais localement et téléchargement de 50 K images .. j'ai aussi supprimé les lignes, ligne par ligne, et a trouvé l'erreur qui se passe avant d'enregistrer lorsque juste essayer d'accès au fichier demandé. voulez-vous dire que mon code est bon?
Voici une étape par étape tutoriel sur le Téléchargement de l'image à l'aide de jQuery ajax dans Asp.net codepedia.info/2015/06/...

OriginalL'auteur hsobhy | 2014-03-16