1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

HTML - (Input type=file)

Discussão em 'Web Development' iniciada por Kainite, 18 de Abril de 2008. (Respostas: 2; Visualizações: 3698)

  1. Boas!
    Estou a desenvolver uma pagina em ASP, mas cheguei a um ponto que só consigo utilizar a opção (input type=path) ou (input type=text) para que ele me escreva na base de dados em SQL server o caminho todo. ex: ../pasta/pagina.asp

    Quando uso a opção (input type=file) para que possa usar o "Browse" ao fazer Submit ele só me copia o nome do ficheiro. ex: pagina.asp

    Eu sei que o problema se encontra na "\" mas já fiz de tudo para ele me guarde o caminho todo em vez só do ficheiro, mas não consigo, usei tambem uma opção no value. ex:(value="+path+<&pagina&>" mas nada.... continua a guardar só a pagina. Alguem me ajuda nesta Matéria?
     
  2. slack_guy

    slack_guy Power Member

    Mas é isso mesmo que deve fazer (http://www.w3.org/TR/html401/interact/forms.html#file-select).

    Penso que até há versão 6 (ou 5?) do IE, esse browser passava (erradamente) a path completa do ficheiro seleccionado. Tanto quanto sei, isso já está resolvido.

    Concluindo, o que tu queres fazer através do 'file select' só resulta em browsers que tenham esse bug.
     
  3. alfinete

    alfinete Power Member

    codigo c#

    metodos para fazer o upload para uma pasta referente ao input file

    Código:
    
     private bool upLoad()
            {
    
                bool resul = true;
    
               
                    //***** temporariamente inibido
                          
                    string base_path_dir;
                    //string  base_path_dir2;
                    //*****
    
                    HttpPostedFile httppf_decisoes = null;
                    // HttpPostedFile httppf_decisoes2;
    
                    int nFileLen;
    
                    //, nFileLen2
    
                    byte[] myData;
                    //,myData2
    
                    //  procura o caminho de onde esta a aplicação
    
                    //string caminho = Server.MapPath("~/");
    
                    //***** Directório base
    
                    //testa_upLoad();
                   
                        base_path_dir = @"" + upload;
                        //base_path_dir2 = @"" + upload2;
    
                        //***** UpLoad file - 
                        
                        httppf_decisoes = Fudocumento.PostedFile;
                        //httppf_decisoes2 = Fudocumento.PostedFile;
    
                        string strFilename_pro = base_path_dir + @"\" + Path.GetFileName(Fudocumento.PostedFile.FileName);
                        //string strFilename_pro2 = base_path_dir2 + @"\" + Path.GetFileName(Fudocumento.PostedFile.FileName);
    
                        nFileLen = httppf_decisoes.ContentLength;
                        //nFileLen2 = httppf_decisoes2.ContentLength;
    
                        myData = new byte[nFileLen];
                        //myData2 = new byte[nFileLen2];
    
                        httppf_decisoes.InputStream.Read(myData, 0, nFileLen);
                        //httppf_decisoes2.InputStream.Read(myData2, 0, nFileLen2);
    
                        grava_upLoad(strFilename_pro, myData);
                        //grava_upLoad(strFilename_pro2, myData2);
                        //resul = true;
    
                   
                   
              
    
    
                return resul;
    
            }
    
            // faz a gravação do upload
            private bool grava_upLoad(string strPath, byte[] Buffer)
            {
    
    
    

    para gravares o caminho na bd fazes fudocumento id ou nome do input=file

    Código:
    Fudocumento.FileName
    
    

    o meu esta feito para validar apenas pdfs no upload

    Código:
    
    private string validapdf(string str)
            {
                string palavra;
                palavra = str.Substring(str.Length - 4);
                return palavra;
            }
    
    
    validação do input=file

    Código:
    
     private bool VFudocumento(string fileup)
            {
                bool resul = false;
                // Valida se caixa de texto esta vazia
                if (fileup == "")
                {
                    Lbldoc.Text = "Campo Obrigatório ";
                    this.lblteste.Text = "";
                    resul = false;
                }
    
                // Valida se caixa de texto não esta vazia
                if (fileup != "")
                {
                    // Valida se o documento puxado é pdf 
                    if (validapdf(fileup) == ".pdf")
                    {
                        this.Lbldoc.Text = "";
                        this.lblteste.Text = "";
                        resul = true;
                    }
    
                    // Valida se o documento puxado não é pdf 
                    if (validapdf(fileup) != ".pdf")
                    {
                        this.Lbldoc.Text = " Só Documentos pdf";
                        this.lblteste.Text = "";
                        resul = false;
                    }
    
                }
    
                return resul;
            }
    
    
    
    

    linha no c# para chamares o caminho do file que esta nop web config e o tamanho do file
    Código:
    
      private string upload = ConfigurationManager.AppSettings.Get("upload");
     private string tamanho = ConfigurationManager.AppSettings.Get("tamanhofile") ;
    
    Código:
    
    depois para controlares o tamanho do file em c# fazes
    
     if (this.Fudocumento.PostedFile.ContentLength <= Convert.ToInt32 ( tamanho) )
                                {}
    
    __________________________________________
    web config
    _____________________________________
    web config
    _________

    linhas no web config uma para dar o caminho para onde fazes o uoload
    outras para limitar o tamanho maximo do file postas dentro do appsettings

    Código:
     
    
    <add key="upload" value="\Documents and Settings\jaribeiro\Ambiente de trabalho\acordaos\decisoes\PDF"/>
    
        <add key="tamanhofile" value="10240000" />
    
    
    



    limitação do brwser em tamanho de file para upload

    posta por baixo do <system.web> no web config

    Código:
    
       <httpRuntime
     
    
        executionTimeout="540"
    
        maxRequestLength="100480"
       
        useFullyQualifiedRedirectUrl="true" 
    
        minFreeThreads="8"
    
        minLocalRequestFreeThreads="4"
    
        appRequestQueueLimit="100"
    
        />
    
     

Partilhar esta Página