Comunidad de diseño web y desarrollo en internet online

Subir archivos ASP

Citar            
MensajeEscrito el 07 Jun 2010 08:35 am
Hola a todos, necesitaria saber como hacerlo para subir archivos desde Flash AS2 a un servidor mediante ASP, alguien me puede ayudar?

Muchas gracias
Pimager

Por Pimager

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jun 2010 09:21 am
Hola a todos, he estado buscando y he montado lo siguiente,

uploadLogo.asp:

Código :

<%
Set Upload = Server.CreateObject("Persits.Upload")
' we use memory uploads, so we must limit file size
Upload.SetMaxSize 100048576   ' Limit files to 100MB

' Save to memory. Path parameter is omitted
Upload.Save

' Check whether a file was selected
Set File = Upload.Files("Filedata")
If Not File Is Nothing Then
   ' Obtain file name
   Filename = file.Filename
   
   Dim extension
   extension = Mid(Filename, InstrRev(Filename, ".") + 1)
   extension = LCASE(extension) 
   
   If(extension = "png" or extension = "gif" or extension = "jpeg" or extension = "jpg") then
      'check if file exists in ..\provesUpload\ under this name
      File.SaveAsVirtual "../LogoFiles/" & File.FileName

      Response.write "OK"
   Else 
   Response.write "KO"
   End If
End If

%>


Y en Flash AS2:

Código ActionScript :

import flash.net.FileReference;
 
class Uploader
{
   private var allTypes:Array;
   private var textTypes:Object;
   private var uploadListener:Object;
   private var fileRef:FileReference;
   
   
   public function Uploader() 
   {
      var dis = this;
      
      allTypes = new Array();
      textTypes = new Object();
      textTypes.description = "Upload files (*.jpg; *.png; *.gif; *.jpeg)";
      textTypes.extension = "*.jpg; *.png; *.gif; *.jpeg";
      allTypes.push(textTypes);
      
      uploadListener = new Object();
      uploadListener.onSelect = function(file:FileReference):Void {
         file.upload(myPath + "/uploadLogo.asp");
         
         if(!file.upload(myPath + "/uploadLogo.asp")) {
            trace("Upload dialog failed to open.");
         }
      }
      uploadListener.onCancel = function(file:FileReference):Void {
         trace("onCancel");
      }
      
      uploadListener.onOpen = function(file:FileReference):Void {
         trace("onOpen: " + file.name);
      }
      
      uploadListener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
         trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
      }
      
      uploadListener.onComplete = function(file:FileReference):Void {
         trace("onComplete: " + file.name);
      }
      uploadListener.onUploadCompleteData = function(file: FileReference, data: String) {
         trace("onUploadCompleteData");
      }
      uploadListener.onHTTPError = function(file:FileReference, httpError: Number):Void {
         trace("onHTTPError: " + httpError);
      }
      
      uploadListener.onIOError = function(file:FileReference):Void {
         trace("onIOError: " + file.name);
      }
      
      uploadListener.onSecurityError = function(file:FileReference, errorString:String):Void {
         trace("onSecurityError: " + file.name + " errorString: " + errorString);
      }
      fileRef = new FileReference();
      fileRef.addListener(uploadListener);
      fileRef.browse(allTypes);
   }
}


El problema, creo, está en la instrucción "Upload.Save", ya que si no la comento me da error "HTTPError: 500", aunque si lo descomento llega hasta "onComplete", pero no sube el archivo.

Alguna idea?
Muchas gracias de nuevo,
Pimager

pd.:La carpeta tiene asignados permisos de escritura

Por Pimager

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jun 2010 11:10 am
Lo he solucionado, aunque lo he hecho con .Net, les dejo el código por si a alguien le puede servir.

Código :

<%@ Page Language="C#" %>

<script runat="server">
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.Request.Files.Count > 0)
        {
            HttpPostedFile uploadFile = this.Request.Files[0];
            string extension = System.IO.Path.GetExtension(uploadFile.FileName).ToLower();
            if (extension == ".png" || extension == ".jpg" || extension == ".jpeg" || extension == ".gif")
            {
                uploadFile.SaveAs(Server.MapPath("~") + "../logos/" + uploadFile.FileName);
            }
        }
    }

</script>

Por Pimager

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Jun 2010 12:11 am
¿Como sería para subir archivos multiples?, es decir, mas de un archivo... tengo este código:

Código :

protected void Page_Load(object sender, EventArgs e)
    {
        Page.Form.Enctype = "multipart/form-data";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < this.Request.Files.Count; i++)
        {
            if (this.Request.Files[i].FileName != String.Empty)
            {
                this.Request.Files[i].SaveAs(Path.Combine(Server.MapPath("img"), this.Request.Files[i].FileName));
            }
        }
    }

Pero me da error en la linea:

Código :

this.Request.Files[i].SaveAs(Path.Combine(Server.MapPath("img"), this.Request.Files[i].FileName));

El error dice: Acceso denegado a la ruta de acceso 'C:\Documents and Settings\usuario\Escritorio\nombre_de_archivo.doc'.

Gracias

Por deftones_sv

86 de clabLevel



 

El Salvador

firefox
Citar            
MensajeEscrito el 24 Jun 2010 01:05 am
Solucionado, asi queda:

Código :

for (int i = 0; i < this.Request.Files.Count; i++)
 {
      if (this.Request.Files[i].FileName != String.Empty)
       {
            this.Request.Files[i].SaveAs(Server.MapPath("img/") + System.IO.Path.GetFileName(this.Request.Files[i].FileName));
        }
 }

Por deftones_sv

86 de clabLevel



 

El Salvador

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.