J'ai trouvé ce script d'upload de fichier ajax ici http://www.phpletter.com/Demo/AjaxFileUpload-Demo/Problème avec AJAX Upload Script dans mvc
qui est censé ajouter des fonctionnalités ajax à mon dossier sous forme de téléchargement
<div id="dialog" title="Upload Image">
<%
Html.BeginForm("Upload", "BugTracker", FormMethod.Post,new { id="uploadForm", enctype = "multipart/form-data"});
%>
Select a file: <input type="file" name="file" id="file" />
<h6>Upload a screenshot related to the ticket</h6>
<input type="submit" class="button" value="Upload" id="upload" onclick="uploadImage();" name="submit" />
<%Html.EndForm();%>
</div>
Et je l'ai mis en place une fonction être appelé quand mon formulaire de téléchargement est présenté comme ceci:
function uploadImage() {
var action = $("#uploadForm").attr('action');
$.ajaxFileUpload({
url: action,
secureuri: false,
fileElementId: 'file',
dataType: 'json',
success: function (data, status) {
$("#RelatedFileName").val() = data.FileName;
$("#dialog").dialog("close");
}
});
return false;
}
mais il saute juste au-dessus de la fonction de rappel de succès, et le navigateur demande si je voudrais Downl oad le fichier json. Voici un coup d'oeil à mon action de téléchargement:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
Regex imageFilenameRegex = new Regex(@"(.*?)\.(jpg|jpeg|png|gif)$");
if (file != null)
{
if (!imageFilenameRegex.IsMatch(file.FileName))
{
return JavaScript("alert('invalid file. you must upload a jpg, jpeg, png, or gif');");
}
else
{
string filePath = Path.Combine(HttpContext.Server.MapPath("~/Uploads"), Path.GetFileName(file.FileName));
file.SaveAs(filePath);
return Json(new { FileName = "/Uploads/" + file.FileName });
}
}
else
{
return JavaScript("alert('seriously? select a file to upload before hitting the upload button.');");
}
}
Je l'ai utilisé jQuery.post et il frappera l'action du contrôleur, mais le fichier sera nul, mais au moins les erreurs sauterait dans leurs boîtes d'alerte, de sorte que est pourquoi j'ai cherché une autre option. Maintenant, il frappe l'action du contrôleur et le fichier est téléchargé, mais il ne gère aucune réponse. Toute aide est appréciée.
Vous avez toujours le meilleur conseil, Darin - merci encore. – Gallen