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
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
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît télécharger ajax fichier uplod script à l'aide de lien ci-dessous.
http://www.phpletter.com/DOWNLOAD/
Puis votre code doit être comme ci-dessous.
Html:
Jquery:
AjaxFileUploader.ashx:
Non, ce n'est vb.net gestionnaire de fichier. J'ai mis à jour le code du gestionnaire. Veuillez suivre les instructions comme je l'ai dit. Si vous avez des doutes à cet implementaion, veuillez me le demander.
assurez-vous .. merci .. je vais vous laisser savoir .. merci
OriginalL'auteur RGS
Vous pouvez écrire WebMethod comme suit(sa en C#)
Et sur la page, vous pouvez envoyer le fichier à l'aide de jQuery suivant,
Rappelez-vous, il peut ne pas fonctionner sur certaines versions d'IE, sinon il fonctionne dans Chrome et Firefox en douceur.
OriginalL'auteur AbdulRahman Ansari