Estoy cargando archivos utilizando ASP.NET Web API. He hecho esto antes del RC, pero por alguna razón el archivo se guarda como "BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af" en lugar del nombre del archivo. La variable de nombre de archivo a continuación también devuelve esta cadena de partes del cuerpo en lugar del nombre del archivo. Parece que no puedo descubrir dónde me estoy equivocando. Cualquier ayuda es apreciada.ASP.NET Web API Archivo guardado como "BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af"
El código de cliente:
function upload() {
$("#divResult").html("Uploading...");
var formData = new FormData($('form')[0]);
$.ajax({
url: 'api/files/uploadfile?folder=' + $('#ddlFolders').val(),
type: 'POST',
success: function (data) {
$("#divResult").html(data);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
};
controlador:
public Task<HttpResponseMessage> UploadFile([FromUri]string folder)
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
}
// Save file
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);
return task.ContinueWith<HttpResponseMessage>(contents =>
{
string filename = provider.BodyPartFileNames.First().Value;
return new HttpResponseMessage()
{
Content = new StringContent(string.Format("File saved in {0}.", folder))
};
}, TaskScheduler.FromCurrentSynchronizationContext());
Los archivos están buscando como:
escribí mi ejemplo completo aquí: http://rivdiv.wordpress.com/2012/06/13/uploading-a-file-using-asp-net-web-api/ – Rivka