Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    upload immagini - mi aiutate a comprendere questo tutorial?

    Eccomi ancora qui, scusate l'insistenza, non è che voglio la pappa fatta ma visto che di PHP non so nulla cerco di mettercela tutta per colmare in fretta questa lacuna. Ho trovato un bellissimo tutorial a questo indirizzo che sembra fare proprio al caso mio:

    http://php.html.it/articoli/leggi/848/upload-con-php/3/

    vorrei sapere quanto segue: (per favore non scoppiate a ridere....)

    1) la spiegazione del file html con il pulsante di invio è chiarissima. Form.html il suo nome
    2) come devo chiamare lo script PHP? posso chiamarlo come voglio? Quale è il criterio da usare?
    3) il form in html e il file PHP devo risiedere nella stessa cartella? Presumo di no. La cartella deve essere del tipo CGI..etc. sul server remoto?
    4) il settaggio del permesso va fatto sulla cartella sul server come per i CGI?

    come avrete capito sono abbastanza confuso. Ad oggi ho solo progettato in html e un po di java script. L'unico form che ho imparato ad usare è il Formmail grazie alle indicazioni di Shishii ma questo script non è indicato per l'invio di immagini o files.

    questo è il testo dello script PHP:

    <?

    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
    if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // Eventuale nuovo nome da dare al file uploadato
    $new_name = "";

    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];

    if(trim($_FILES["upfile"]["name"]) == "") {

    die("Non hai indicato il file da uploadare !");

    }

    if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {

    @move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
    or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");

    } else {

    die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);

    }

    echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";

    ?>

    non capisco bene la seguente spiegazione del settaggio delle variabili:

    Le due variabili da settare sono rispettivamente:

    la directory dove spostare i files uploadati ($upload_dir, da indicare con il percorso assoluto sul server e i cui permessi vanno settati a 777)
    l'eventuale nuovo nome da dare al file che viene caricato sul server ($new_name; se non si vuole rinominare il file, questo avrà lo stesso nome che aveva sul computer client.)

    per esempio, supponiamo che la directory residente sul server dove voglio che vadano a raccogliersi le immagini si chiami: archivio

    e ancora, che istruzione devo indicare se voglio che le immagini uploadate dal sito anzichè andare nella cartella vengano inviate ad una data casella email?

    grazie per la pazienza, vi saro' grato per le vostre delucidazioni.
    webbeginner
    ___________________________________
    noi agiamo, sentiamo e pensiamo non in conformità all'aspetto reale delle cose ma secondo le immagini che la mente si è fatta delle cose...
    ____________________________________

  2. #2

    ancora una domanda

    girovagando qua e là ho trovato questo altro script in PHPrealizzato appositamente per l'upload di immagini)
    Posso usare per le mie prove il file form.html che ho utilizzato per lo script precedente?
    Ho letto che sarebbe opportuno per le prove in locale installare easy php. Penso che lo faro'.
    Grazie ancora per i vostri suggerimenti

    <?php

    /* loading language file */
    function get_translations($lngfile) {

    if (file_exists($lngfile)) {
    $lines = file($lngfile);
    while (list(,$line) = each($lines)) {
    list($key,$val)= explode("=",$line);
    $phrases[$key] = $val;
    }
    return $phrases;
    } else {
    return false;
    }
    }
    /* translate a string */
    function translate($str,$vals="") {

    global $phrases;

    if ($phrases) {
    $p_str = $phrases[$str];
    if ($p_str == "") {
    $p_str = $str;
    }
    } else {
    $p_str = $str;
    }

    if (gettype($vals)=="array") {
    $p_str = sprintf($p_str,$vals[0],$vals[1],$vals[2],$vals[3],$vals[4],$vals[5],$vals[6]);
    }

    return (trim($p_str));
    }

    $my_max_file_size = "102400"; # in bytes
    $image_max_width = "800";
    $image_max_height = "800";
    $the_path = "image/";

    $registered_types = array(
    "application/x-gzip-compressed" => ".tar.gz, .tgz",
    "application/x-zip-compressed" => ".zip",
    "application/x-tar" => ".tar",
    "text/plain" => ".html, .php, .txt, .inc (etc)",
    "image/bmp" => ".bmp, .ico",
    "image/gif" => ".gif",
    "image/pjpeg" => ".jpg, .jpeg",
    "image/jpeg" => ".jpg, .jpeg",
    "application/x-shockwave-flash" => ".swf",
    "application/msword" => ".doc",
    "application/vnd.ms-excel" => ".xls",
    "application/octet-stream" => ".exe, .fla (etc)"
    );

    $allowed_types = array("image/bmp","image/gif","image/pjpeg","image/jpeg");

    # --

    function form($error=false) {

    global $PHP_SELF,$my_max_file_size,$lng;

    if ($error) print $error . "

    ";

    print "\n<form ENCTYPE=\"multipart/form-data\" action=\"upload.php3\" method=\"post\">";
    print "\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $my_max_file_size . "\">";
    print "\n<INPUT TYPE=\"hidden\" name=\"task\" value=\"upload\">";
    print "\n

    ".translate("Upload images")."";
    print "\n
    NOTE: ".translate("Max file size is")." " . ($my_max_file_size / 1024) . "KB";
    print "\n
    <INPUT NAME=\"the_file\" TYPE=\"file\" SIZE=\"35\">
    ";
    print "\n<input type=\"submit\" Value=\"Upload\">";
    print "\n</form>";

    } # END form

    # --

    if (!ereg("^4",phpversion())) {
    function in_array($needle,$haystack) { # we have this function in PHP4, so for you PHP3 people
    for ($i=0; $i < count($haystack); $i++) {
    if ($haystack[$i] == $needle) {
    return true;
    }
    }
    }
    }

    # --

    function validate_upload($the_file) {

    global $my_max_file_size, $image_max_width, $image_max_height,$allowed_types,$the_file_type,$r egistered_types;

    $start_error = "\nError:\n<ul>";

    if ($the_file == "none") { # do we even have a file?

    $error .= "\n[*]You did not upload anything!";

    } else { # check if we are allowed to upload this file_type

    if (!in_array($the_file_type,$allowed_types)) {
    $error .= "\n[*]The file that you uploaded was of a type that is not allowed, you are only
    allowed to upload files of the type:\n<ul>";
    while ($type = current($allowed_types)) {
    $error .= "\n[*]" . $registered_types[$type] . " (" . $type . ")";
    next($allowed_types);
    }
    $error .= "\n[/list]";
    }

    if (ereg("image",$the_file_type) && (in_array($the_file_type,$allowed_types))) {

    $size = GetImageSize($the_file);
    list($foo,$width,$bar,$height) = explode("\"",$size[3]);

    if ($width > $image_max_width) {
    $error .= "\n[*]Your image should be no wider than " . $image_max_width . " Pixels";
    }

    if ($height > $image_max_height) {
    $error .= "\n[*]Your image should be no higher than " . $image_max_height . " Pixels";
    }

    }

    if ($error) {
    $error = $start_error . $error . "\n[/list]";
    return $error;
    } else {
    return false;
    }
    }
    } # END validate_upload

    # --


    function list_files() {

    global $the_path;

    $handle = dir($the_path);
    print "\nUploaded files:
    ";
    while ($file = $handle->read()) {
    if (($file != ".") && ($file != "..")) {
    print "\n" . $file . "
    ";
    }
    }
    print "<hr>";
    }

    # --

    function upload($the_file) {

    global $the_path,$the_file_name;

    $error = validate_upload($the_file);
    if ($error) {
    form($error);
    } else { # cool, we can continue
    if (!@copy($the_file, $the_path . "/" . $the_file_name)) {
    form("\nSomething barfed, check the path to and the permissions for the upload directory");
    } else {
    list_files();
    form();
    }
    }
    } # END upload

    # --

    ############ Start page

    print "<html>\n<head>\n<title>Upload example</title>\n</head>\n<body>";
    echo("<table width=\"0%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">
    <tr align=\"left\">
    <td><font face=verdana size=2>");
    switch($task) {
    case 'upload':
    upload($the_file);
    break;
    default:
    form();
    }
    echo("</font></td>
    </tr>
    </table>");
    print "\n</body>\n</html>";

    ?>
    webbeginner
    ___________________________________
    noi agiamo, sentiamo e pensiamo non in conformità all'aspetto reale delle cose ma secondo le immagini che la mente si è fatta delle cose...
    ____________________________________

  3. #3
    Innanzitutto quando posti codice usa l'apposito tag CODE o PHP che così è un casino ed illeggibile.
    Andiamo per gradi

    1) la spiegazione del file html con il pulsante di invio è chiarissima. Form.html il suo nome
    2) come devo chiamare lo script PHP? posso chiamarlo come voglio? Quale è il criterio da usare?
    3) il form in html e il file PHP devo risiedere nella stessa cartella? Presumo di no. La cartella deve essere del tipo CGI..etc. sul server remoto?
    4) il settaggio del permesso va fatto sulla cartella sul server come per i CGI?
    1) Tu hai una pagina form.html che si trova dove ti pare a te, diciamo http://www.form.it/pagina.html ( o http://localhost/pagina.html è lo stesso ti trovi ? )
    2) Lo script php da richiamare in seguito all' invio di una form html deve avere il nome che tu nella form indicherai come action. Un form ha i seguenti campi <form method=" il metodo da utilizzare sia esso post o sia esso get" action="indirizzo della pagina php che deve ricevere ed elaborare le informazioni del form">
    Quindi nel tuo caso ad esempio sarà <form method="post" action="http://www.form.it/pagina.php"> ( non devi usare indirizzi assoluti, sto facendo un esempio...basterebbe anche scrivere action="./pagina.php" )
    3) Il file html contenente il form e la pagina php possono essere dove ti pare a te, tanto sei che nella form dici dove sta il file php che elaborerà il form.
    Non ho ben capito cosa intendi se deve essere tipo CGI sul server remoto.
    Php come CGI lavora lato server ; con CGI avevi la necessità di avere una cartella ben definita, la famosa CGI-BIN...php lavora su un webserver che avrai tu installato in locale (http://localhost questo significa) o avrai un hosting e quindi sarà tutto configurato
    4) Se parli dei permessi delle cartelle in cui fare upload...bhe ovviamente è la cartella sul server..o per meglio dire del webserver.

  4. #4

    grazie

    Grazie di cuore Ellecubo. Le tue risposte sono state chiare e esaudienti.
    Vedro' di mettere in pratica il tutto dato che ho la necessità di creare questa
    pagina di upload nel mio attuale sito:
    Attualmente per l'invio dei file utilizzo il client di posta elettronica dei visitatori
    puoi vederla a questo indirizzo:
    http://www.emiliorescigno.it/tab5.htm
    penso di procedere in questo modo, dimmi se va bene.
    Inviero' la pagina html sul server
    creero' una cartella chiamandola upload dove inviero' la pagina php la quale
    dovrà ricevere e processare i dati del form
    Che permessi dovro' dare alla cartella?
    e ancora, riepilogando come devo procedere se voglio:
    1) che le immagini inviate sul server dai visitatori vengano indirizzate a un ipotetico indirizzo di posta elettronica, es: restauro@email.it
    2) che le immagini vadano a finire dentro a una directory x la quale verrà poi da me consultata via ftp, ma penso di preferire la prima soluzione.
    Scusami ancora per la banalità delle domande ma sono proprio nuovo a questo linguaggio.
    un caro saluto
    webbeginner
    ___________________________________
    noi agiamo, sentiamo e pensiamo non in conformità all'aspetto reale delle cose ma secondo le immagini che la mente si è fatta delle cose...
    ____________________________________

  5. #5

    chmod

    nel primo script il permesso viene indicato, mi era sfuggito.
    ciao e grazie ancora per l'aiuto che potrai darmi.
    webbeginner
    ___________________________________
    noi agiamo, sentiamo e pensiamo non in conformità all'aspetto reale delle cose ma secondo le immagini che la mente si è fatta delle cose...
    ____________________________________

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