Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    26

    Creare alias di un file

    Ciao a tutti,

    ho questo problema. Carico dei file sul server che, per evitare sovrascritture, vengono rinominati con un numero progressivo. In una tabella del db conservo il loro vecchio nome (es. pippo.doc) associato al nome nuovo (es. 125489632.doc).
    Nella pagina da cui si possono scaricare però, oltre a visualizzare il link per il download come pippo.doc vorrei che il file venisse scaricato come pippo.doc.
    Finora ho utilizzato il metodo della copia del file con il vecchio nome, ma prestazionalmente è una schifezza..
    Avete idee in merito?

    grazie!

  2. #2
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    metti per esempio un tabella nel database di questo tipo:

    __+ID_file+_____+nome_file+____
    __+______+_____+_________+____
    __+01.doc+_____+pippo.doc+____
    __+______+_____+_________+____
    __+02.doc+_____+minni.doc+____
    __+______+_____+_________+____

    poi fai un select e vedi al numero ID il relativo nome e fai:

    <?php
    $file = (select del nome originario io non ne capisco niente di database fai tu );
    $id = (sempre select ma questa volta l'id);
    fwrite(fopen($file, "w"), fread(fopen($id, "r"), filesize($id)));
    ?>
    <html><body>
    scarica il file
    </body></html>




  3. #3
    ehm ... è insensato scrivere il file su disco ... dallo direttamente in output

    e se non vuoi aver rogne con il nome usa un minimo di espressioni regolari ed hai risolto il problema ^^ (mod_rewrite su apache)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    26
    grazie ragazzi,

    il metodo della copia, che faccio già in questo momento, non va bene, perchè io non conosco nè il numero di utenti contemporanei che potrebbero effettuare la copia ne le dimensioni degli allegati..
    Volevo appunto dare il vecchio nome direttamente in output, cioè l'utente vede il link modulo.doc (che in realtà punta a 15483.doc), lo clicca e tira giù un file di nome modulo.doc (che in realtà punta a 15483.doc, ma l'utente non lo sa)..

  5. #5
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    come ho detto io non va?

  6. #6
    piu' che altro è un semi-suicidio

    ci sono sistemi decisamente piu' efficenti come le rewrite rules!

    usandole dici ad apache che tutti gli address presenti in una data cartella sono da rimandare ad una pagina php ... ristrutturi l'url per la pagina php ed in questo modo la pagina php invierà al browser i dati ed il browser prenderà il nome corretto

    ed il tutto senza far collassare nulla

  7. #7
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    e chi non ha apache

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    26
    ok.. deciso di utilizzare il mod_rewrite di apache è sorto un altro problema.. Sono obbligato (come requisito) ad usare un server windows.. Ma sembra che windows non supporti il mod_rewrite (ed infatti è tutta la mattina che provo con un esempio stupidissimo ma non ho tirato fuori un ragno dal buco..): risulta anche a voi?

  9. #9
    Originariamente inviato da php_34
    e chi non ha apache
    usa le rewrite rules di iis

    http://www.isapirewrite.com/docs/

    ma ovviamente devono essere installate

    altri modi non c'è ne sono e quello di scrivere su disco e pura follia per TANTI motivi

    se su windows hai apache problemi non ne hai se sei su IIS sei quasi a mare

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    26
    mi dicevi che su windows con apache non dovrei avere problemi, io però non riesco a farlo andare!
    Allora ho abilitato in httpd.conf le voci:

    LoadModule rewrite_module modules/mod_rewrite.so
    AddModule mod_rewrite.c

    A questo punto ho creato nella directory che contiene i documenti il file .htaccess in cui è scritto:

    RewriteEngine on
    RewriteRule ^1129726716.doc$ pincopallo.doc [L]

    tuttavia non funziona niente .. Chiamando il file pincopallo.doc ottengo pagina non trovata e chiamando 1129726716.doc vedo il file non rinominato..

    che devo fare?!?!?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.