Avatar billede Slettet bruger
21. december 2000 - 23:18 Der er 5 kommentarer og
1 løsning

Uploade bille og lægge sti i MySQL

Hej! Jeg har fundet følgende stykke kode der virker fint, og nu vil jeg gerne have at billedet ved upload omdøbes til user_name.filendelse. Dvs. at hver bruger får sit eget billede.

Brugernavnet hentes i en tabel der hedder users fra rækken der hedder user_name.

Dernæst skal stien til billedet lægges ind i db\'en i rækken der hedder user_picture.

Det jeg gerne vil have er at billedet omdøbes ved upload, og gives brugerens navn + .filendelsen.

Her er koden:

<?PHP

$my_max_file_size     = \"102400\"; # in bytes
$image_max_width    = \"300\";
$image_max_height    = \"300\";
$the_path            = \"/usr/local/www/datefinderdk/www/user_pictures\";

$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)\"
                    ); # these are only a few examples, you can find many more!

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

# --

function form($error=false) {

global $PHP_SELF,$my_max_file_size;

    if ($error) print $error . \"<br><br>\";
   
    print \"\\n<form ENCTYPE=\\\"multipart/form-data\\\"  action=\\\"\" . $PHP_SELF . \"\\\" 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<P>Upload a file\";
    print \"\\n<BR>NOTE: Max file size is \" . ($my_max_file_size / 1024) . \"KB\";
    print \"\\n<br><INPUT NAME=\\\"the_file\\\" TYPE=\\\"file\\\" SIZE=\\\"35\\\"><br>\";
    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,$registered_types;
   
    $start_error = \"\\n<b>Error:</b>\\n<ul>\";
   
    if ($the_file == \"none\") { # do we even have a file?
   
        $error .= \"\\n<li>You did not upload anything!</li>\";
   
    } else { # check if we are allowed to upload this file_type
       
        if (!in_array($the_file_type,$allowed_types)) {
            $error .= \"\\n<li>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<li>\" . $registered_types[$type] . \" (\" . $type . \")</li>\";
                next($allowed_types);
            }
            $error .= \"\\n</ul>\";
        }
   
        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<li>Your image should be no wider than \" . $image_max_width . \" Pixels</li>\";
            }
           
            if ($height > $image_max_height) {
                $error .= \"\\n<li>Your image should be no higher than \" . $image_max_height . \" Pixels</li>\";
            }
       
        }
       
        if ($error) {
            $error = $start_error . $error . \"\\n</ul>\";
            return $error;
        } else {
            return false;
        }
    }
} # END validate_upload

# --


function list_files() {

global $the_path;

      $userdata = get_userdata_from_id($user, $db);

    $handle = dir($the_path);
    print \"\\n<b>Uploaded files:</b><br>\";
    echo $userdata[username];
    while ($file = $handle->read()) {
        if (($file != \".\") && ($file != \"..\")) {
            print \"\\n\" . $file . \"<br>\";
      }
    }
    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(\"\\n<b>Something barfed, check the path to and the permissions for the upload directory</b>\");
        } else {
            list_files();
            form();
        }
    }
} # END upload

# --

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

print \"<html>\\n<head>\\n<title>Upload example</title>\\n</head>\\n<body>\";

switch($task) {
    case \'upload\':
        upload($the_file);
    break;
    default:
        form();
}

print \"\\n</body>\\n</html>\";

?>

Er det noget nogen af jer kloge hoveder kan klare?? ;-)

Avatar billede Slettet bruger
21. december 2000 - 23:19 #1
kan ikke stave!
bille = billede!!!
Avatar billede Slettet bruger
21. december 2000 - 23:20 #2
Avatar billede arrgh Nybegynder
22. december 2000 - 00:19 #3
Jeg gider ikke lige læse din lange kode, men upload i PHP er temmelig nemt:

1. Indsæt en file-upload (ENCTYPE=\"multipart/form-data\") form.

2. Post til et PHP script   

3. $userfile_name indeholder oprindelige filnavn. Check om ekstentionen matcher.

4. Den temporære uploadede fil hedder $userfile

Så du vil køre en PHP kommando i stil med:

`mv $userfile $username.gif`;
Avatar billede Slettet bruger
22. december 2000 - 01:03 #4
1. Det fremgår jo af scriptet

2. -----\"\"-----

3. -----\"\"-----

4. -----\"\"-----

5. ??????

`mv $userfile $username.gif`;

gør præcist hvad?
Avatar billede Slettet bruger
23. december 2000 - 22:09 #5
Har selv løst problemet! Drop en linie hvis du vil ha\' min løsning. Den er ret lang.
Avatar billede Slettet bruger
23. december 2000 - 22:10 #6
Right back at ya!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester