2011-01-07 9 views
0

Wir versuchen, eine Datei hochladen und Parameter an einen ASP.Net MVC2-Controller von einer Flash-Anwendung übergeben. Im Wesentlichen wird hier einfach ein Standard-Multipart/Form-Post mit einer Datei und Posted Params erstellt.asp.net mvc2 Post-Datei und Formularwerte aus Flash

In der Steuerung:

public string Upload(HttpPostedFile file, string someString, 
         int someInt, DateTime someDate) 
{ 
    // some code 
    return "success"; 
} 

Und von Flash (flex):

var file : FileReference = "C:\someFile.txt"; 
var urlRequest: URLRequest = new URLRequest("http://localhost/MySite/Uploader/Upload"); 
urlRequest.method = URLRequestMethod.POST; 

var variables:URLVariables = new URLVariables(); 
variables.someString = "test"; 
variables.someInt= 1; 
variables.someDate = "01/01/2011 00:00:00"; 

urlRequest.data = variables; 

file.upload(urlRequest, "file"); 

Der Controller instanziiert wird aber die Methode nicht gefunden wird, wenn wir die Datei ohne die zusätzliche einfach posten params es funktioniert gut und wir können es auch mit der Datei und dem someInt param arbeiten, aber sonst nichts?

+0

Ich würde etwas in Bezug auf AS Sicherheit wetten, möglicherweise Hinzufügen von "security.allowdomain (" Website "," IP ");'? – balexandre

Antwort

1

Zum Wohle anderer versucht, das gleiche zu tun, haben wir es mit diesem zur Arbeit zu kommen:

[HttpPost] 
public int Index(HttpPostedFileBase file, 
    [Bind(Prefix = "someString")] string someString, 
    [Bind(Prefix = "someInt")] int someInt, 
    [Bind(Prefix = "someDate")] string someDate) 
{ 
    // stuff here 
} 

Das funktioniert aber ich habe keine Ahnung, warum, dachte ich Präfixe für den Zugriff auf Kollektionsteile oder einige waren eine solche. Ich denke, wenn eine Datei veröffentlicht wird, werden die zugehörigen Formulardaten in einer Sammlung übergeben. Wenn jemand weiß, warum oder eine bessere Herangehensweise, ich bin glücklich, die Antwort an jemand anderen zu geben.

Verwandte Themen