Cuando cargo un archivo de imagen en un blob, la imagen se carga al parecer con éxito (sin errores). Cuando voy al estudio de almacenamiento en la nube, el archivo está allí, pero con un tamaño de 0 (cero) bytes.Almacenamiento en Azure: archivos cargados con tamaño cero bytes
El siguiente es el código que estoy usando:
// These two methods belong to the ContentService class used to upload
// files in the storage.
public void SetContent(HttpPostedFileBase file, string filename, bool overwrite)
{
CloudBlobContainer blobContainer = GetContainer();
var blob = blobContainer.GetBlobReference(filename);
if (file != null)
{
blob.Properties.ContentType = file.ContentType;
blob.UploadFromStream(file.InputStream);
}
else
{
blob.Properties.ContentType = "application/octet-stream";
blob.UploadByteArray(new byte[1]);
}
}
public string UploadFile(HttpPostedFileBase file, string uploadPath)
{
if (file.ContentLength == 0)
{
return null;
}
string filename;
int indexBar = file.FileName.LastIndexOf('\\');
if (indexBar > -1)
{
filename = DateTime.UtcNow.Ticks + file.FileName.Substring(indexBar + 1);
}
else
{
filename = DateTime.UtcNow.Ticks + file.FileName;
}
ContentService.Instance.SetContent(file, Helper.CombinePath(uploadPath, filename), true);
return filename;
}
// The above code is called by this code.
HttpPostedFileBase newFile = Request.Files["newFile"] as HttpPostedFileBase;
ContentService service = new ContentService();
blog.Image = service.UploadFile(newFile, string.Format("{0}{1}", Constants.Paths.BlogImages, blog.RowKey));
Antes de que el archivo de imagen se carga en el almacenamiento, el InputStream propiedad de la HttpPostedFileBase parece estar bien (el tamaño de la de la imagen corresponde a lo que se espera! Y no se arrojan excepciones).
Y lo realmente extraño es que esto funciona perfectamente en otros casos (cargar Power Points o incluso otras imágenes de la función Worker). El código que llama al método SetContent parece ser exactamente el mismo y el archivo parece ser correcto ya que se crea un nuevo archivo con cero bytes en la ubicación correcta.
¿Alguien tiene alguna sugerencia, por favor? Depuré este código docenas de veces y no puedo ver el problema. Cualquier sugerencia es bienvenida!
Gracias
Para aclarar un poco, cuando se está trabajando con una corriente, comprobar para asegurarse de que se establece la propiedad Posición de la corriente a 0 después de cargar cualesquiera bytes en él. Por defecto, la Posición de una Secuencia se establecerá al final de su contenido por algún motivo. – Dusda
Sí, eso es algo de lo que estoy siempre enterado y nunca pierdo más de un segundo para recordarlo. ¡Gracias! –
Lo hizo, gracias :) –