Ich versuche, Uploadify mit meiner Website zu arbeiten, aber ich bekomme einen allgemeinen "HTTP-Fehler", noch bevor die Datei an den Server gesendet wird (ich sage dies, weil Fiddler keine Post-Anfrage an meinen Controller zeigt.
Ich kann korrekt nach der hochzuladenden Datei suchen. Die Warteschlange wird korrekt mit der hochzuladenden Datei gefüllt, aber wenn ich auf die Schaltfläche "Senden" klicke, wird das Element in der Warteschlange rot und zeigt einen HTTP-Fehler an.
Wie auch immer, dies ist mein Teilcode:
<% using ( Html.BeginForm( "Upload", "Document", FormMethod.Post, new { enctype = "multipart/form-data" } ) ) { %>
<link type="text/css" rel="Stylesheet" media="screen" href="stackoverflow.com/_assets/css/uploadify/uploadify.css" />
<script type="text/javascript" src="/_assets/js/uploadify/swfobject.js"></script>
<script type="text/javascript" src="/_assets/js/uploadify/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("[ID$=uploadTabs]").tabs();
var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>";
$('#fileInput').uploadify({
uploader: '/_assets/swf/uploadify.swf',
script: '/Document/Upload',
folder: '/_uploads',
cancelImg: '/_assets/images/cancel.png',
auto: false,
multi: false,
scriptData: { token: auth },
fileDesc: 'Any document type',
fileExt: '*.doc;*.docx;*.xls;*.xlsx;*.pdf',
sizeLimit: 5000000,
scriptAccess: 'always', //testing locally. comment before deploy
buttonText: 'Browse...'
});
$("#btnSave").button().click(function(event) {
event.preventDefault();
$('#fileInput').uploadifyUpload();
});
});
</script>
<div id="uploadTabs">
<ul>
<li><a href="#u-tabs-1">Upload file</a></li>
</ul>
<div id="u-tabs-1">
<div>
<input id="fileInput" name="fileInput" type="file" />
</div>
<div style="text-align:right;padding:20px 0px 0px 0px;">
<input type="submit" id="btnSave" value="Upload file" />
</div>
</div>
</div>
<% } %>
Vielen Dank für Ihre Hilfe!
UPDATE :
Ich habe dem uploadify-Skript einen "onError"-Handler hinzugefügt, um zu untersuchen, welcher Fehler wie im folgenden Beispiel auftrat
onError: function(event, queueID, fileObj, errorObj) {
alert("Error!!! Type: [" + errorObj.type + "] Info [" + errorObj.info + "]");
}
und entdeckte, dass die Eigenschaft info Folgendes enthält 302 . Ich habe auch die "Methode" zu uploadify mit dem Wert von 'Post' .
Ich füge meinen Controller-Aktionscode zur Information bei. Ich habe viele Beiträge über uloadify gelesen und es scheint, dass ich eine Aktion mit der folgenden Signatur verwenden können...
[HttpPost]
public ActionResult Upload(string token, HttpPostedFileBase fileData) {
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(token);
if (ticket!=null) {
var identity = new FormsIdentity(ticket);
if(identity.IsAuthenticated) {
try {
//Save file and other code removed
return Content( "File uploaded successfully!" );
}
catch ( Exception ex ) {
return Content( "Error uploading file: " + ex.Message );
}
}
}
throw new InvalidOperationException("The user is not authenticated.");
}
Kann mir bitte jemand helfen?