Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355

    upload con controllo tipo file

    Salve a tutti dovrei risolvere questo problema:

    Impedire che vengano caricati file diversi da csv.

    Ho già effettuato un controllo sull'estenzione del file (grazie anche a Roby) ma mi sono accorto che se prendo un file con estenzione .doc e gli cambio l'estenzione da .doc a .csv, riesco ad effettuare l'upload (cosa che non dovrebbe accadere).

    Ho pensato di effettuare un controllo sul mime-type ma non so proprio come fare.

    qualcuno saprebbe aiutarmi?

    grazie

  2. #2
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    dubito che tu riesca a ottenere un mime-type text/csv per un file rinominato in doc, visto che il mime-type si basa sull'estensione...

    per quanto ignorante io sia mi sembra che il controllo lui lo faccia cosi...

  3. #3
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    non mi sono spiegato bene.

    il file di partenza è un .doc

    l'utente cambia l'estenzione da .doc a .csv e carica il file

    in questa maniera viene eluso il controllo e avviene l'upload.

    ci deve essere un modo per evitare questa situazione

  4. #4
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    no no ri sei spiegato bene


    rinomina il file da doc a csv e poi vai a vedere le prorpietà del file con


    Codice PHP:
    <%
    dim fs,f
    set fs
    =Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.GetFile(Server.MapPath("test.csv"))
    Response.Write("The file test.txt is of type: ")
    Response.Write(f.Type)
    set f=nothing
    set fs
    =nothing
    %> 
    e vediamo chi ha ragione

    davide

  5. #5
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    ottengo questo:

    File con valori separati da virgola (CSV) di Microsoft Office Excel.

    però sto leggendo questo articolo mi dici se potrebbe essere fruttuoso? (io non mi ci raccapezzo tanto)

    http://asp.html.it/articoli/leggi/695/upload-di-file/

    grazie

  6. #6
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    mmmm...

    a parte che li sono file binari...ma non è quello il problema, credo che il content type sia recuperato da iis a partire dall'estensione. un file csv è un file in chiaro e non c'è traccia di content-type al suo interno ....

  7. #7
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    mi consigli di rinunciare?

    Però prima ti spiego da cosa nasce la mia esigenza:

    l'utente carica un file on-line (che deve essere di tipo csv)

    io faccio leggere il contenuto del file (connessione al csv e recordset)
    ora :
    1-se il file non esiste on-line faccio visualizzare un messaggio di assenza file
    2-se il file esiste ma il rs risulta vuoto: visualizzo messaggio assenza dati

    il problema è che nel caso in cui qualcuno cambia estenzione ad un documento e lo chiama .csv mi viene mostrato un messaggio di errore che non so come gestire e si ferma l'elaborazione della pag asp

    il messaggio di errore visualizzato è il segente:
    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto

  8. #8
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    Gestisci l'errore in ASP


    On error resume next

    ....
    faccio le mie cose
    ...


    Codice PHP:
    If err.number <> 0 then
       Response
    .write("Il file non è in formato corretto!!")
       
    Response.end
    End 
    if 
    con buona pace di tutti



  9. #9
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    Non mi da più il messaggio di errore ma non mi mostra neppure il messaggio di file in formato non corretto.

    Dove sbaglio?

    <%
    'Se file non esiste
    then %>
    <tr>
    <td>Nessun file di listino risulta essere caricato attualmente.</td>
    </tr>
    <%
    'se file esiste
    elseif err.number <> 0 then %>
    <tr>
    <td>Il file non è in formato corretto!!!</td>
    </tr>
    <%
    Response.End()
    Else
    'apro connessione
    'estraggo i dati
    If rs.bof and rs.eof then %>
    <tr>
    <td>Il file di listino caricato risulta essere: vuoto, danneggiato o comunque non corretto.</td>
    </tr><%
    End if
    With (Response)
    While rs.EOF = False
    %>
    <tr>
    <td><%=rs("1")%></td>
    <td><%=rs("2)%></td>
    </tr>
    <%rs.MoveNext
    Wend
    End With
    Set rs = Nothing
    'Chiudo connessione
    end if
    %>
    </table>

  10. #10
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    se metti on error resume next lui non ti mostra più gli errori, si limita ad andare all'istruzione successiva, per cui devi metterlo alla riga prima dove ti dava errore e fare il controllo dopo che hai aperto il recordset

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.