Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script Upload
#1
Salve a tutti...sto cercando di realizzare uno script di Upload di TUTTI i tipi file con successiva catalogazione (in alto) di quelli già caricati con link per download...
Ho provato a modificare degli scrip già pronti ma il risultato nn è stato dei migliori...come struttura credo che vada bene questo file:
Codice PHP:
uploaz.php:
<
html>
    <
head>
        <
title>Upload</title>
    </
head>
<
body>

<?
require(
"fileupload.class");

#--------------------------------#
# Variables
#--------------------------------#

// The path to the directory where you want the 
// uploaded files to be saved. This MUST end with a 
// trailing slash unless you use $PATH = ""; to 
// upload to the current directory. Whatever directory
// you choose, please chmod 777 that directory.

    
$PATH "upload/files";

// The name of the file field in your form.

    
$FILENAME "userfile";

// ACCEPT mode - if you only want to accept
// a certain type of file.
// possible file types that PHP recognizes includes:
//
// OPTIONS INCLUDE:
//  text/plain
//  image/gif
//  image/jpeg
//  image/png

    
$ACCEPT "image/gif";

// If no extension is supplied, and the browser or PHP
// can not figure out what type of file it is, you can
// add a default extension - like ".jpg" or ".txt"

    
$EXTENSION "";

// SAVE_MODE: if your are attempting to upload
// a file with the same name as another file in the
// $PATH directory
//
// OPTIONS:
//   1 = overwrite mode
//   2 = create new with incremental extention
//   3= do nothing if exists, highest protection

    
$SAVE_MODE 1;


#--------------------------------#
# PHP
#--------------------------------#

function print_file($file$type$mode) {
    if(
$file) {
        if(
ereg("image"$type)) {
            echo 
"<img src=\"" $file "\" border=\"0\" alt=\"\">";
        }
        else {
            
$userfile fopen($file"r");
            while(!
feof($userfile)) {
                
$line fgets($userfile255);
                switch(
$mode){
                    case 
1:
                        echo 
$line;
                        break;
                    case 
2:
                        echo 
nl2br(ereg_replace("\t""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"htmlentities($line)));
                        break;
                }    
            }
        }
    }
}

$upload = new uploader;
$upload->max_filesize(30000);

if(
$upload->upload("$FILENAME""$ACCEPT""$EXTENSION")) {
    while(list(
$key$var) = each($upload->file)){
        echo 
$key " = " $var "<br>";
    }
    if(
$upload->save_file("$PATH"$SAVE_MODE)) {
        print(
"<p>Saved as: " $upload->new_file "<p>");
        
print_file($upload->new_file$upload->file["type"], 2);
    }
}

if(
$upload->errors) {
    while(list(
$key$var) = each($upload->errors)){
        echo 
"<p>" $var "<br>";
    }
}

if (
$NEW_NAME) {
    print(
"<p>Name of image save: <b>$NEW_NAME</b></p>");
}

#--------------------------------#
# HTML FORM
#--------------------------------#
?>

    <form enctype="multipart/form-data" action="<?print($PHP_SELF);?>" method="POST">
        <input type="hidden" name="MAX_FILE_SIZE" value="100000">Send this file:
        <input name="userfile" type="file">
        <input type="submit" value="Send File">
    </form>
    <hr>
<?
    
if ($ACCEPT) {
        print(
"This form only accepts <b>" $ACCEPT "</b> files\n");
    }
?>

</body>
</html> 
come vedrete il file si collega ad un class:
Codice PHP:
fileupload.class:
<?
/*
Error codes:
    0 - "No file was uploaded"
    1 - "Maximum file size exceeded"
    2 - "Maximum image size exceeded"
    3 - "Only specified file type may be uploaded"
    4 - "File already exists" (save only)
*/

class uploader {

    var 
$file;
    var 
$errors;
    var 
$accepted;
    var 
$new_file;
    var 
$max_filesize;
    var 
$max_image_width;
    var 
$max_image_height;

    function 
max_filesize($size){
        
$this->max_filesize $size;
    }

    function 
max_image_size($width$height){
        
$this->max_image_width $width;
        
$this->max_image_height $height;
    }

    function 
upload($filename$accept_type$extention) {
        
// get all the properties of the file
        
$index = array("file""name""size""type");
        for(
$i 0$i 4$i++) {
            
$file_var '$' $filename . (($index[$i] != "file") ? "_" $index[$i] : "");
            eval(
'global ' $file_var ';');
            eval(
'$this->file[$index[$i]] = ' $file_var ';');
        }
    
        if(
$this->file["file"] && $this->file["file"] != "none") {
            
//test max size
            
if($this->max_filesize && $this->file["size"] > $this->max_filesize) {
                
$this->errors[1] = "Maximum file size exceeded. File may be no larger than " $this->max_filesize/1000 "KB.";
                return 
False;
            }
             if(
ereg("image"$this->file["type"])) {
                 
$image getimagesize($this->file["file"]);
                 
$this->file["width"] = $image[0];
                 
$this->file["height"] = $image[1];
            
                
// test max image size
                
if(($this->max_image_width || $this->max_image_height) && (($this->file["width"] > $this->max_image_width) || ($this->file["height"] > $this->max_image_height))) {
                    
$this->errors[2] = "Maximum image size exceeded. Image may be no more than " $this->max_image_width " x " $this->max_image_height " pixels";
                    return 
False;
                }    
                 switch(
$image[2]) {
                     case 
1:
                         
$this->file["extention"] = ".gif";
                         break;
                     case 
2:
                         
$this->file["extention"] = ".jpg";
                         break;
                     case 
3:
                         
$this->file["extention"] = ".png";
                         break;
                     default:
                        
$this->file["extention"] = $extention;
                         break;
                 }
            }
             else if(!
ereg("(\.)([a-z0-9]{3,5})$"$this->file["name"]) && !$extention) {
                
// add new mime types here
                
switch($this->file["type"]) {
                    case 
"text/plain":
                        
$this->file["extention"] = ".txt";
                        break;
                    default:
                        break;
                }            
             }
            else {
                
$this->file["extention"] = $extention;
            }
        
            
// check to see if the file is of type specified
            
if($accept_type) {
                if(
ereg($accept_type$this->file["type"])) { $this->accepted True; }
                else { 
$this->errors[3] = "Only " ereg_replace("\|"" or "$accept_type) . " files may be uploaded"; }
            }
            else { 
$this->accepted True; }
        }
        else { 
$this->errors[0] = "No file was uploaded"; }
        return 
$this->accepted;
    }

    function 
save_file($path$mode){
        global 
$NEW_NAME;
        
        if(
$this->accepted) {
            
// very strict naming of file.. only lowercase letters, numbers and underscores
            
$new_name ereg_replace("[^a-z0-9._]"""ereg_replace(" ""_"ereg_replace("%20""_"strtolower($this->file["name"]))));

            
// check for extention and remove
            
if(ereg("(\.)([a-z0-9]{3,5})$"$new_name)) {
                
$pos strrpos($new_name".");
                if(!
$this->file["extention"]) { $this->file["extention"] = substr($new_name$posstrlen($new_name)); }
                
$new_name substr($new_name0$pos);
                
            }
            
$this->new_file $path $new_name $this->file["extention"];
            
$NEW_NAME $new_name $this->file["extention"];
            
            switch(
$mode) {
                case 
1// overwrite mode
                    
$aok copy($this->file["file"], $this->new_file);
                    break;
                case 
2// create new with incremental extention
                    
while(file_exists($path $new_name $copy $this->file["extention"])) {
                        
$copy "_copy" $n;
                        
$n++;
                    }
                    
$this->new_file $path $new_name $copy $this->file["extention"];
                    
$aok copy($this->file["file"], $this->new_file);
                    break;
                case 
3// do nothing if exists, highest protection
                    
if(file_exists($this->new_file)){
                        
$this->errors[4] = "File &quot" $this->new_file "&quot already exists";
                    }
                    else {
                        
$aok rename($this->file["file"], $this->new_file);
                    }
                    break;
                default:
                    break;
            }
            if(!
$aok) { unset($this->new_file); }
            return 
$aok;
        }
    }
}
?>
che ne gestisce i formati, le dimensioni etc...
Mentre come interfaccia grafica nn mi dispiace questo:
Codice PHP:
Upload.html:
<
HTML>

<
HEAD>
<
TITLE>Virtual PHP File Uploader v1.0</TITLE>
</
HEAD>

<
BODY>

<
FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data">
<
P>
<
CENTER>
<
P>
<
TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="36%" HEIGHT="80">
    <
TR>
        <
TD HEIGHT="20" COLSPAN="3" BGCOLOR="#0268A6"></TD>
    </
TR>
    <
TR>
        <
TD HEIGHT="20" COLSPAN="3" BGCOLOR="silver">
            <
P ALIGN="CENTER"><B><FONT FACE="Verdana">Upload A File</FONT></B>
        </
TD>
    </
TR>
    <
TR>
        <
TD WIDTH="6%" HEIGHT="67" BGCOLOR="silver"></TD>
        <
TD WIDTH="88%" HEIGHT="67" BGCOLOR="silver">
            <
P ALIGN="CENTER"> <INPUT TYPE="file" NAME="img1" SIZE="30">
        </
TD>
        <
TD WIDTH="6%" HEIGHT="67" BGCOLOR="silver"></TD>
    </
TR>
    <
TR>
        <
TD HEIGHT="54" COLSPAN="3" BGCOLOR="silver">
            <
CENTER>
            <
P><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Upload File">
</
CENTER>
        </
TD>
    </
TR>
    <
TR>
        <
TD WIDTH="6%" BGCOLOR="#0268A6"></TD>
        <
TD WIDTH="88%" BGCOLOR="#0268A6"></TD>
        <
TD WIDTH="6%" BGCOLOR="#0268A6"></TD>
    </
TR>
</
TABLE>

</
CENTER><P>
</
FORM>
</
BODY>
</
HTML
Sarebbe possibile fare una via di mezzo?? ovvero un file che abbia l'intterfaccia di quest'ultimo file ma con la struttura dei primi due...
Cita messaggio
#2
Dove c'è:
Codice PHP:
$ACCEPT "image/gif"

Metti:
Codice PHP:
$ACCEPT ""

Dove c'è il form in HTML puoi mettere il codice che hai scritto in fondo al messaggio.

Dove vuoi mettere l'elenco dei file prova a inserire questo script:
Codice PHP:
<?php
$files 
glob($PATH.'/*');
$counter count($files);
if(
$counter>0){
    echo 
'<ul>';
    for(
$i=0;$i<$counter;$i++){
        
$f substr(strrchr($files[$i],'/'),1);
        if(
$f!='.' && $f!='..')
            echo 
'<li><a href="'.$PATH.'/'.$f.'">'.$f.'</a></li>';
        unset(
$f):
    }
    unset(
$i);
    echo 
'</ul>';
}
unset(
$counter);
unset(
$files);
?>
Mattia!
Cita messaggio
#3
Grazie mille per la risposta Mattia!!
Ma l'ultimo script (quello per l'elenco) lo devo aggiungere o sostituire a quello presente?? e sarebbe la parte in php dopo quella in html??

Gratias
Cita messaggio
#4
Quello dell'elenco lo devi mettere dove vuoi visualizzare l'elenco dei file. Per esempio, lo puoi mettere subito prima o subito dopo il form.
Mattia!
Cita messaggio
#5
Attualmente la pagina è così:
Codice PHP:
<html>
<
head>
<
title>Upload</title>
</
head>
<
body>

<?
require(
"fileupload.class");

#--------------------------------#
# Variables
#--------------------------------#

    
$PATH "upload/files";

    
$FILENAME "userfile";

    
$ACCEPT "";

    
$EXTENSION "";

// OPTIONS:
//   1 = overwrite mode
//   2 = create new with incremental extention
//   3= do nothing if exists, highest protection

    
$SAVE_MODE 1;


#--------------------------------#
# PHP
#--------------------------------#

function print_file($file$type$mode) {
    if(
$file) {
        if(
ereg("image"$type)) {
            echo 
"<img src=\"" $file "\" border=\"0\" alt=\"\">";
        }
        else {
            
$userfile fopen($file"r");
            while(!
feof($userfile)) {
                
$line fgets($userfile255);
                switch(
$mode){
                    case 
1:
                        echo 
$line;
                        break;
                    case 
2:
                        echo 
nl2br(ereg_replace("\t""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"htmlentities($line)));
                        break;
                }    
            }
        }
    }
}

$upload = new uploader;
$upload->max_filesize(30000);

if(
$upload->upload("$FILENAME""$ACCEPT""$EXTENSION")) {
    while(list(
$key$var) = each($upload->file)){
        echo 
$key " = " $var "<br>";
    }
    if(
$upload->save_file("$PATH"$SAVE_MODE)) {
        print(
"<p>Saved as: " $upload->new_file "<p>");
        
print_file($upload->new_file$upload->file["type"], 2);
    }
}

if(
$upload->errors) {
    while(list(
$key$var) = each($upload->errors)){
        echo 
"<p>" $var "<br>";
    }
}

if (
$NEW_NAME) {
    print(
"<p>Name of image save: <b>$NEW_NAME</b></p>");
}

#--------------------------------#
# HTML FORM
#--------------------------------#
?>
<?php
$files 
glob($PATH.'/*');
$counter count($files);
if(
$counter>0){
    echo 
'<ul>';
    for(
$i=0;$i<$counter;$i++){
        
$f substr(strrchr($files[$i],'/'),1);
        if(
$f!='.' && $f!='..')
            echo 
'<a href="'.$PATH.'/'.$f.'">'.$f.'</a>';
        unset(
$f);
    }
    unset(
$i);
    echo 
'</ul>';
}
unset(
$counter);
unset(
$files);
?>
<HTML>

<HEAD>
<TITLE>File Uploader</TITLE>
</HEAD>

<BODY>

<FORM METHOD="POST" ENCTYPE="multipart/form-data" action="<?print($PHP_SELF);?>" method="POST">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="36%" HEIGHT="80">
    <TR>
        <TD HEIGHT="20" COLSPAN="3" BGCOLOR="#0268A6"></TD>
    </TR>
    <TR>
        <TD HEIGHT="20" COLSPAN="3" BGCOLOR="silver">
            <P ALIGN="CENTER"><B><FONT FACE="Verdana">Upload A File</FONT></B>
        </TD>
    </TR>
    <TR>
        <TD WIDTH="6%" HEIGHT="67" BGCOLOR="silver"></TD>
        <TD WIDTH="88%" HEIGHT="67" BGCOLOR="silver">
            <P ALIGN="CENTER"> <INPUT TYPE="file" NAME="userfile" SIZE="30"><input type="hidden" name="MAX_FILE_SIZE" value="100000">
        </TD>
        <TD WIDTH="6%" HEIGHT="67" BGCOLOR="silver"></TD>
    </TR>
    <TR>
        <TD HEIGHT="54" COLSPAN="3" BGCOLOR="silver">
        <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Upload File">
</TD></TR>
<TR>
        <TD WIDTH="6%" BGCOLOR="#0268A6"></TD>
        <TD WIDTH="88%" BGCOLOR="#0268A6"></TD>
        <TD WIDTH="6%" BGCOLOR="#0268A6"></TD>
</TR>
</TABLE>
</FORM>
<?
    
if ($ACCEPT) {
        print(
"This form only accepts <b>" $ACCEPT "</b> files\n");
    }
?>

</body>
</html> 
in ogni caso quando provo a caricare il file me lo elenca come faceva prima cioé:
Citazione:file = /membri/.dummy/temp/phpQtuYX0
name = rom 240.txt
size = 5894
type = text/plain
extention =

Name of image save: rom_240.txt

Invece a me interessava solo che dicesse :
Name of image save: rom_240.txt col nome del file (in questo caso rom_240.txt) come link per dare la possibilità di scaricare il file...
inoltre il file nn lo trovo nella cartella \\upload\files (tra l'altro cos'è quel primo rigo che stampa: file = /membri/.dummy/temp/phpQtuYX0 ??)
E per ultima cosa mi piacerebbe aggiugnere anche un campo "Descrizione" per dare una descrizione all'oggetto caricato (andrebbe creato un txt??) che andrebbe visualizzata a seguito del nome del file...
(quindi ad es:
Name of image save: rom_240.txt
Descrizione: file per rom nds...)
spero sia chiaro...

In ogni caso puoi testare la pagina attuale qui:
http://www.chandler.altervista.org/upload/uploaz.php

Gratias
Cita messaggio
#6
Devi modificare questo pezzo per decidere cosa stampare dopo un upload:
Codice PHP:
if($upload->upload("$FILENAME""$ACCEPT""$EXTENSION")) {
    while(list(
$key$var) = each($upload->file)){
        echo 
$key " = " $var "<br>";
    }
    if(
$upload->save_file("$PATH"$SAVE_MODE)) {
        print(
"<p>Saved as: " $upload->new_file "<p>");
        
print_file($upload->new_file$upload->file["type"], 2);
    }


Per aggiungere una descrizione devi utilizzare un database oppure un file di testo (TXT, CSV, XML...).
Mattia!
Cita messaggio
#7
Quindi dovrebbe venire:
Codice PHP:
if($upload->upload("$FILENAME")) {
    while(list(
$key$var) = each($upload->file)){
        echo 
$key " = " $var "<br>";
    }
    if(
$upload->save_file("$PATH"$SAVE_MODE)) {
        print(
"<p>Salvato in: " $upload->new_file "<p>");
        
print_file($upload->new_file$upload->file["type"], 2);
    }

E' giusto così?? E come faccio a collegare il nome col link per scaricarlo?'
Per la descrizione si, credo che l'idea migliore sarebbe quella del .txt... è giusta una cosa del genere??:
Codice PHP:
<?php 
if(isset($_POST['descrizione'])){ 
    if(!
is_file('descrizione.txt')){ 
        
fopen('descrizione.txt''w'); 
    } 
    
$descrizione implode(''file('descrizione.txt')); 
    }else{ 
        
$open fopen('descrizione.txt''a'); 
        
fwrite($open$_POST['descrizione']."\n"); 
        
fclose($open); 
        echo 
"<span class=\"testo\"><b>Descrizione inserita correttamente!</b></span>"
    } 
Magari ho scritto na gran stronzata!
Inoltre resta il problema che nn mi carica i files nella cartella \\upload\files (nn riesco a capire dove li va a mettere)
Cita messaggio
#8
Al posto di:
Codice PHP:
if(!is_file('descrizione.txt')){ 

Metti:
Codice PHP:
if(!file_exists('descrizione.txt')){ 

Per quanto riguarda il percorso devi settarlo nella variabile $PATH.

Per il resto hai provato? Ti dà qualche errore?
Mattia!
Cita messaggio
#9
Cotninuo ad avere gli stessi errori:
1) non mi salva i file in upload/files
2) continua a mettermi tutti quei dati (che nn servono):
file = /membri/.dummy/temp/phpSTThZI
name = Document.txt
size = 744
type = text/plain
extention =
3) La descrizione non funziona...non mi inserisce il testo dentro il txt
4) non riesco a rendere il file uploadato scaricabile
Cita messaggio
#10
1) Controlla il percorso. Il percorso che hai scritto tu significa che la cartella "upload" si trova nella stessa cartella dello script.
2) Devi eliminare questo pezzo di codice:
Codice PHP:
while(list($key$var) = each($upload->file)){
    echo 
$key " = " $var "<br>";

3) Nel form hai inserito il campo "descrizione"? Ti dà qualche errore? Nel form hai inserito due volte method="post".
4) Se non riesci a caricarlo, è normale che non compare nell'elenco dei file da scaricare.
Mattia!
Cita messaggio
#11
Adesso proprio nn mi upload i file (nn in conseguenza a quello che mi hai detto tu) credo di aver scazzato fileupload.class
1)in realtà lo script si trova dentro la cartella upload e i files dovrebbero essere salvati dentro \upload\files
2)ho eliminato il pezzo di codice
3)Nel form avevo già inserito il campo descrizione e ho tolto il doppio post...ma nn uploadando files sembra nn funzionare...
Cita messaggio
#12
Rimetti "fileupload.class" come era prima.
A $PATH assegna "files":
Codice PHP:
$PATH "files"

Controlla che la cartella "files" abbia i permessi di scrittura (777).
Mattia!
Cita messaggio
#13
adesso l'upload sembra funzionare...ma ogni volta che carico il file me lo stampa nella pagina in ascii
Citazione:45 0 obj<</Length 218/Filter/FlateDecode/O 374/S 313>>stream
c!Žk­|QÕ–ïÑùã±ïÊqÉù‰®•ÖE’âé«.ôàmJ㢠¤žÿkÁ8Ƥ}ìJŸ…£*Á¦= ©Ì„¥:lÇ.Ü
8F¯]Ç{¿Ú’NBΏÑ,˜=š3f«)Eâ71N¸rò7öXo&VóÀ›Üî ‹H­;‹›‹ß8gb©}{t³6åMæ®Cé"‹kB
5è`?XÔ¡²3þt5¡hwSñè !TS´dúœ c2>xŸ“¨éùüy.ÈÙÁÑ1nÒ»-½ÏÁûn¬ëæ
endstream
endobj
43 0 obj<</R 3/Length 128/Filter/Standard/O(…«àXEÚÛkÕFí7Ÿw†ôKcLé³B0æÄ)/P -1340/U(¬ÉN¨?4è¥ ÷‘à_CÕces<</DisplayDocTitle true>>/Metadata 40 0 R>>
endobj
46 0 obj<</Annots[47 0 R 48 0 R]/Contents 52 0 R/Type/Page/Parent 39 0 R/Rotate 0/MediaBox[0 0 720 540]/CropBox[0 0 720 540]/Resources 49 0 R/Group<</CS/DeviceRGB/I true/S/Transparency>>>>
endobj
47 0 obj<</Type/Annot/Rect[246.400009 106.800003 358.200012 122.5]/Border[0 0 0]/Subtype/Link/A<</URI(êfPJm¶ûº³<¬3¢N³ àpùÑ1)/Type/Action/S/URI>>>>
endobj
48 0 obj<</Type/Annot/Rect[372.600006 106.800003 509.600006 122.5]/Border[0 0 0]/Subtype/Link/A<</URI(nt:åïœ -å\\ƒ‘ë½»vä%Smile/Type/Action/S/URI>>>>
endobj
49 0 obj<</Font 50 0 R/XObject<</Im20 62 0 R/Im25 63 0 R/Im4 57 0 R>>/ProcSet[/PDF/Text/ImageC/ImageI/ImageB]>>
endobj
50 0 obj<</F1 51 0 R/F2 56 0 R/F3 61 0 R>>
endobj
51 0 obj<</Type/Font/Encoding/WinAnsiEncoding/BaseFont/Times-Roman/Subtype/Type1>>
endobj
52 0 obj<</Length 579/Filter/FlateDecode>>stream
íµÄk
;Ö-šÄÜBõ~”lŒ`sÁû ]@ñΚX<Ūd„™WA.™–Ÿ ÚÊ6ñà¹(Õqâíð$I’ÀýàgÉb§$gæ¤êêŸ_Å¢¹žÓÓK7&Ï+þi»ó™ÉBÒG⤱ýCÎîl hzô~~óÓGæuêt8ÿ–Í
“·sì[`2Û¿3è†,7Wö%ñÝb!Å°<ª˜¬'÷{a"ü–b×F-¦XS‡endstream
endobj
53 0 obj<</Length 499/Filter/FlateDecode>>stream
Üâ²ÆÀ*ù†ÖÍ‚ðÇE&×96ÌÀ$Å~ó¨ÉÙºNDÄ!Ë܆yh»`»ÒÍÒ'yô¶2ß|i€—^Å$ö…›ð¾Æc®?¹‹¬¹µ„‰H/.éCµ'‡dbCl<k ¥” @
BLöÂÂÝÊÙA‰Ù`šbvE_kl¥ ¹‹ó¤G<ij€f{ÙR9 
ñÜÖd“ߘe†p ú~ˆ‘º”_½8}àì:àgJ{x3êE?‰
@m‡"Ùh2ƒô¥ÞµP™°P[çòªñà5H4Lü<íVœ¿"pFÜNÏp?ÑþÈGì<ïN "?O¥µÙ™W5Iç¾úô™x!LEÓiBEõÁüw[(ÕôM™8…Ù¢j¸ÜšÇøXw2%Õj ­ šì[ËŽ¿ŠxØÂ+môåÂȼ÷'ò=æ+`D¤K“ߌÀ•<Nߏñzò·Œ­~f‚AÍ«½bFèòUÈoºþ¨
¡]‰
endstream
endobj
54 0 obj<</Length 22099/Filter/FlateDecode/Length1 34588>>stream
;fŪ2S2AÿÉ56Ç'!^êYϐá"ßVÈÄæ{,Â\NExdV--ˆÔê쫍ƷùÙmÞ­hŒ&Â½”Ç|Z)vèþ@wiLkf,=!ÑZhóa€ÿ,'6ëbefH1ýîÓrW ǦÛ&NÏŠKcÑö
¼¾×É1‹„ÛA ÖOnŒ€Yø" .¶e=sË Wšºn›±ÆkŽÚÐ-¦`:·WR1ZÀN1íÂj'@§.íVã0ÊÕÞiª*
‡‹f!¬¬“7v–Û’¢ÞҐ¦©3$dÖàñ
Xñ/m0¤¢WZÍÿÔK{1W
cTÒS2${\Ž(žPc6+—ÈÙt‰M´ùÉAfïŒ)'Ž%€ééÇK"ÙèM²5a¸åŽ¢ÓWºÿÜÕ†BžvÕnk´ÔÏÔ¡ì‹Îá²ÇOèõ4C£XvNXÿr¼ü™{ ñÞW¹
aDUfhCµÅ[>¥?/J­—]J´Ì~«Åè=³Úc&;M¸ß^@•d!§Ñ®‚g@±. 9bÓ~„¾ O‡Q»‹ºXV¸cÌr´­w%2D]ª´‹Ó¹U]cÊW!¤2=†fÊfÔiõ§Â°ÊsM!îP{EšË=ªè,‡Ê '<˜‘¹–?
oʬ¦#Cé
N¨µ/ S‘így"ùF²ÓúÓ1pËËdžbñ¤£ì.‘yzW”l«ØÚ<û`#@4îHÝEüÏH˜kOEAK;5èݼ)ˆSÁ<C·‘‘3;ý>áä6¨_(]Lã–}2~.ù¾ Y¹Œ»\Õ* Å1ä‡P:›ÍPì‹Àpaò
b–÷ú,üß÷  Þ{YæX Dz7öƒ«PçÁú˜É"ˆ»ÔðÒrÝÉ]#Q(l/ÐDu•â4®\ÛÕYlyþœôÆÀ
«XråkÛm¹8-uÖÓ/µ(æ!â7ªçhn¸ûÅÃÊžsÌ„nQ
üȦ}–Ӎ BËëŸ[kűۆHȝӪ…_吤®‡•œ)§`¯£M4'Æ •L³ì?ÙèQ÷[lŒUVœ±z“¥0]á7jh¿pìg%
|f6µ¬“Yʽ «•rœ'Ž”þ¯°ÿpèþåÚ ‡Çú&a÷yÈ2Vî@'Ö0Ò"8Ab')kÝ>ïúÓBýM…ÆšÓG}–Ï7\ìðÕ“ÏvX•”¶IáØ4Éf9›ïtÿ°.î8¥[Ô â¶î5Öõ4©\r˜‘ÁÇґÊRÙ»œ,Ïøò-íá"ia HýØÂbÓóxÅHzéF‰®ˆmó„:$’íå‰Ä¤`½2a£aÿy:›KY–¢GÑHf@ötÌ
ÕØdñaiÛ!uŽeqÂÜ!»Í·½%¤Z–kB©Æ©¬9÷ÐûÞùë³óE¹žâ|41kXÐf+Ój\­[ûÒlBa°;ð£A–ÿmKáTÔ«(O$¢m1òH× ­¼­@MÿC ¸Â¢Ù)€R=DÕB8‡§-Éê"æ´ WkKЁŠ7ZA×æ|þXlŸÝ—Ÿq¨…qpö!wèÖ3waÃnÅš˜iˆÞS’ÿ
?ñ/¥BÎAH˜Ùí cM¦†š›ítŸk??5„ ù˜$~
×]˜n$Û^îôRÁ“zAS>6Q_Yuro­Ix
Da dove levo sta funzione?'
Cita messaggio
#14
Devi cancellare la riga con:
Codice PHP:
print_file($upload->new_file$upload->file["type"], 2); 
Mattia!
Cita messaggio
#15
OK funziona, grazie mille!! adesso oltre a stampare i file caricati tuttiattaccati come faccio ad assegnargli la descrizione?? fin ora nn ha funzionato...
guarda questo link e vedi come viene:
http://www.chandler.altervista.org/upload/uploaz.php

descrizione.txt resta SEMPRE vuoto!!
Inoltre se clicco su uno dei file caricati me lo apre online (testo o immagine che sia) come faccio a fare in modo che si apra la finestra di download??
Cita messaggio
#16
Vedo che i file sono già tutti attaccati. Per quanto riguarda la descrizione puoi agire in due modi:
  1. Crei una cartella dove inserisci i file di testo con la descrizione ognuno di un file. Si chiameranno, per esempio, "nomedelfile.txt". Questo metodo è più facile da attuare se conosci poco PHP.
  2. Crei un file unico per tutte le descrizioni dove per ogni riga ci sarà il nome del file, un separatore e la descrizione.
Mattia!
Cita messaggio
#17
Si, ma nn voglio che siano tutti attaccati smilie
Vorrei che venisse :
NomeFile.file
Descrizione: bla bla
<br>
NomeFile.file2
Descrizione: bla bla2
<br>

Per la descrizione opterei per la seconda opzione (quella dell'unico txt) ma come si fa??
Inoltre nn appena accedo alla pagina la prima volta...mi da in automatico questi msg:
No file was uploaded
Descrizione inserita correttamente!

Come faccio a fare in modo che questi msg me li stampi solo dopo aver caricato un qualsiasi file?? e' possibile?'
Cita messaggio
#18
Basta che aggiungi il "<br />" dopo che stampi il nome del file come prima c'erano i "<li>".
Per la seconda opzione devi leggerti il file con la funzione file che ti restituisce un array formato per ogni elemento da una riga del file.
Dentro al ciclo dove stampi i file, scorri il file delle descrizioni con un ciclo (ad esempio, il for), esplodi la riga che stai leggendo con la funzione explode, controlli se il file della descrizione è lo stesso che stai stampando ed eventualmente stampi la descrizione.
Ti consiglio però di utilizzare il primo metodo perché è più facile da gestire e non fa lo stesso ciclo troppe volte rallentando lo script.
Mattia!
Cita messaggio
#19
Scusami, ma devi capire che nn sono poi tanto esperto di php (vabbè si capisce) nnn ho capito dove dovrei collocare ESATTAMENTE i <br />

Per quanto riguarda invece il discorso del txt quale sarebbe il primo metodo da utilizzare quello della funz file?? Inoltre nn mi hai risposto sull'ultima problematica segnalata ovvero quello delle frasis tampate nn appena apro la pagina...
Cita messaggio
#20
Dopo "</a>" aggiungi "<br />".
Il primo metodo è il primo metodo di questo messaggio.
Per quanto riguarda l'errore in inglese, dove c'è:
Codice PHP:
if($upload->errors) { 

Devi mettere:
Codice PHP:
if(isset($_FILES) && !empty($_FILES) && $upload->errors){ 

Per quanto riguarda l'errore in italiano, al posto di:
Codice PHP:
if(isset($_POST['descrizione'])){ 
    if(!
is_file('descrizione.txt')){ 
        
fopen('descrizione.txt''w'); 
    } 
    
$descrizione implode(''file('descrizione.txt')); 
    }else{ 
        
$open fopen('descrizione.txt''a'); 
        
fwrite($open$_POST['descrizione']."\n"); 
        
fclose($open); 
        echo 
"<span class=\"testo\"><b>Descrizione inserita correttamente!</b></span>"
    } 

Metti:
Codice PHP:
if(isset($_POST['descrizione'])){
    
$open fopen('descrizione.txt','a');
    
fwrite($open,$_POST['descrizione']."\n");
    
fclose($open);
    echo 
"<span class=\"testo\"><b>Descrizione inserita correttamente!</b></span>";

Mattia!
Cita messaggio
#21
Quale sarebbe il problema a usare il metodo con unico txt??
Inoltre come ho già scritto in un altro msg attualmente se clicco sul file caricato me lo apre direttamente da browser...come faccio invece a farlo partire come download (con la finestra di download senza bisogno di dover cliccare col pulsante destro sul nome-> Salva oggetto da)??

Adesso tra l'altro sul txt vengono salvate le descrizioni col solo testo...ma bisogna associrarle al proprio file e stamparle sotto al nome
Cita messaggio
#22
I problemi nell'utilizzare un unico file di testo te li ho elencati prima:
(02/12/2008 19:05)Mattia Ha scritto: Ti consiglio però di utilizzare il primo metodo perché è più facile da gestire e non fa lo stesso ciclo troppe volte rallentando lo script.

Per far aprire sempre la finestra del download devi far passare i download da un altro file PHP. Ho creato pochi minuti fa questa guida sull'argomento.

Per vedere un esempio di lettura di un file puoi seguire questa guida.
Mattia!
Cita messaggio
#23
Quindi dovrei fare na cosa tipo:
Codice PHP:
echo '<a href="'.download.php?file=$f$PATH.'/'.$f.'">'.$f.'</a><br />'
o forse:
Codice PHP:
<a href=\"\download.php?file=$f$PATH.'/'.$f.'\"\> 
Cita messaggio
#24
Nel link presente nella guida devi solo sostituire "file.ext" con il nome del file. Poi nello script "download.php" devi mettere il percorso della cartella in cui si trovano i file.
Mattia!
Cita messaggio
#25
ma nello script dell'upload nn hai il nome del file...lo genera giusto??
Cita messaggio
#26
Quando fa l'upload prende il nome del file che carichi che hai sul computer.
Mattia!
Cita messaggio
#27
Si, ma io nn so cosa andrò a caricare...forse nn capisco...
Cita messaggio
#28
Quando selezioni un file da caricare, il file sul computer non ha un nome? Quando lo carichi il file mantiene quel nome.
Mattia!
Cita messaggio
#29
si, ho capito ma se questo è uno script che ad esempio nn devo usare io...come faccio a sapere il nome del file che caricherà...e poi mica posso modificare lo script ogni volta che aggiungo un file...nn si può mettere sta funzione direttamente nello script??
Cita messaggio
#30
Quando carichi il file, oltre al file, passi anche il nome del file. Tutti i dati sono racchiusi nella variabile globale $_FILES.
Però non ho capito cosa ti interessa questa cosa visto che l'upload funziona.
Mattia!
Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Script PHP per testare sicurezza Wifi Chandler 112 224.396 23/04/2018 18:18
Ultimo messaggio: Mattia
  shortlink con script di riconoscimento device Chandler 7 10.033 01/02/2017 16:09
Ultimo messaggio: Chandler
  script per generazione immagine da template Chandler 135 278.577 18/07/2015 08:19
Ultimo messaggio: Mattia
  estrarre script Chandler 4 11.708 22/01/2015 20:06
Ultimo messaggio: Chandler
  Script traduttore Chandler 75 171.785 21/10/2012 16:53
Ultimo messaggio: Chandler
  Upload immagini con Ajax Upload e jQuery azcoit 18 45.355 04/05/2012 13:12
Ultimo messaggio: azcoit
  Erroe di parsing nell'esecuzione di uno script filippo9639 1 8.171 25/01/2009 22:09
Ultimo messaggio: Mattia
  Problemo con script per importare dati di una tabella su un altro hosting filippo9639 7 20.522 27/12/2008 17:43
Ultimo messaggio: Mattia
  Errore parziale su script PHP filippo9639 12 47.402 30/11/2008 16:17
Ultimo messaggio: filippo9639
  Problema con script PHP per trasferimento tabelle dati filippo9639 10 32.061 23/11/2008 18:08
Ultimo messaggio: filippo9639

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)