Announcement

Collapse
No announcement yet.

Get an img and direct url similar to other image upload scripts

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Get an img and direct url similar to other image upload scripts

    A long time ago, I found this little script in a forum but I do not remember where from otherwise I would give credit.

    Anyway, I intended to create a simply image upload script which I can build into vbulletin or other forums. When uploading an image, I'd like to get as a result not just a successful message, but also the generated filename with several links, including the image tag (i.e IMG) and a direct link..

    You can see a demo here : http://ifinallygotitworking.co.uk/pics/

    Upload a small file and see what I mean .. At the moment I can only see the full filename when logging in via FTP or SSH.

    Here the code used

    index.php
    PHP Code:
    <?php

    // filename: upload.form.php

    // first let's set some variables

    // make a note of the current working directory relative to root.
    $directory_self str_replace(basename($_SERVER['PHP_SELF']), ''$_SERVER['PHP_SELF']);

    // make a note of the location of the upload handler
    $uploadHandler 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'processing.php';

    // set a max file size for the html upload form
    $max_file_size 5242880// size in bytes

    // now echo the html page
    ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

    <html lang="en">
        <head>
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
        
            <link rel="stylesheet" type="text/css" href="stylesheet.css">
            
            <title>Upload form</title>
        
        </head>
        
        <body>
        
        <form id="Upload" action="<?php echo $uploadHandler ?>" enctype="multipart/form-data" method="post">
        
            <h1>
                Upload form
            </h1>
            
            <p>
                <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">
            </p>
            
            <p>
                <label for="file1">File to upload:</label>
                <input id="file1" type="file" name="file[]">
            </p>
                    
            <p>
                <label for="file2">File to upload:</label>
                <input id="file2" type="file" name="file[]">
            </p>
                    
            <p>
                <label for="file3">File to upload:</label>
                <input id="file3" type="file" name="file[]">
            </p>
                    
            <p>
                <label for="submit">Press to...</label>
                <input id="submit" type="submit" name="submit" value="Upload us!">
            </p>
        
        </form>
        
        
        </body>

    </html>
    processing.php
    PHP Code:
    <?php  

    // filename: upload.processor.php

    // first let's set some variables

    // make a note of the current working directory, relative to root.
    $directory_self str_replace(basename($_SERVER['PHP_SELF']), ''$_SERVER['PHP_SELF']);

    // make a note of the directory that will recieve the uploaded files
    $uploadsDirectory $_SERVER['DOCUMENT_ROOT'] . $directory_self 'uploaded_files/';

    // make a note of the location of the upload form in case we need it
    $uploadForm 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'index.php';

    // make a note of the location of the success page
    $uploadSuccess 'http://' $_SERVER['HTTP_HOST'] . $directory_self 'done.php';

    // name of the fieldname used for the file in the HTML form
    $fieldname 'file';

    //echo'<pre>';print_r($_FILES);exit;



    // Now let's deal with the uploaded files

    // possible PHP upload errors
    $errors = array(=> 'php.ini max file size exceeded'
                    
    => 'html form max file size exceeded'
                    
    => 'file upload was only partial'
                    
    => 'no file was attached');

    // check the upload form was actually submitted else print form
    isset($_POST['submit'])
        or 
    error('the upload form is neaded'$uploadForm);
        
    // check if any files were uploaded and if 
    // so store the active $_FILES array keys
    $active_keys = array();
    foreach(
    $_FILES[$fieldname]['name'] as $key => $filename)
    {
        if(!empty(
    $filename))
        {
            
    $active_keys[] = $key;
        }
    }

    // check at least one file was uploaded
    count($active_keys)
        or 
    error('No files were uploaded'$uploadForm);
            
    // check for standard uploading errors
    foreach($active_keys as $key)
    {
        (
    $_FILES[$fieldname]['error'][$key] == 0)
            or 
    error($_FILES[$fieldname]['tmp_name'][$key].': '.$errors[$_FILES[$fieldname]['error'][$key]], $uploadForm);
    }
        
    // check that the file we are working on really was an HTTP upload
    foreach($active_keys as $key)
    {
        @
    is_uploaded_file($_FILES[$fieldname]['tmp_name'][$key])
            or 
    error($_FILES[$fieldname]['tmp_name'][$key].' not an HTTP upload'$uploadForm);
    }
        
    // validation... since this is an image upload script we 
    // should run a check to make sure the upload is an image
    foreach($active_keys as $key)
    {
        @
    getimagesize($_FILES[$fieldname]['tmp_name'][$key])
            or 
    error($_FILES[$fieldname]['tmp_name'][$key].' not an image'$uploadForm);
    }
        
    // make a unique filename for the uploaded file and check it is 
    // not taken... if it is keep trying until we find a vacant one
    foreach($active_keys as $key)
    {
        
    $now time();
        while(
    file_exists($uploadFilename[$key] = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name'][$key]))
        {
            
    $now++;
        }
    }

    // now let's move the file to its final and allocate it with the new filename
    foreach($active_keys as $key)
    {
        @
    move_uploaded_file($_FILES[$fieldname]['tmp_name'][$key], $uploadFilename[$key])
            or 
    error('receiving directory insuffiecient permission'$uploadForm);
    }
        
    // If you got this far, everything has worked and the file has been successfully saved.
    // We are now going to redirect the client to the success page.
    header('Location: ' $uploadSuccess);

    // make an error handler which will be used if the upload fails
    function error($error$location$seconds 5)
    {
        
    header("Refresh: $seconds; URL=\"$location\"");
        echo 
    '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n".
        
    '"http://www.w3.org/TR/html4/strict.dtd">'."\n\n".
        
    '<html lang="en">'."\n".
        
    '    <head>'."\n".
        
    '        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n".
        
    '        <link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n".
        
    '    <title>Upload error</title>'."\n\n".
        
    '    </head>'."\n\n".
        
    '    <body>'."\n\n".
        
    '    <div id="Upload">'."\n\n".
        
    '        <h1>Upload failure</h1>'."\n\n".
        
    '        <p>An error has occured: '."\n\n".
        
    '        <span class="red">' $error '...</span>'."\n\n".
        
    '         The upload form is reloading</p>'."\n\n".
        
    '     </div>'."\n\n".
        
    '</html>';
        exit;
    // end error handler

    ?>
    done.php
    PHP Code:
    <?php

    // filename: upload.success.php

    ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

    <html lang="en">
        <head>
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
            
            <link rel="stylesheet" type="text/css" href="stylesheet.css">
            
            <title>Successful upload</title>
        
        </head>
        
        <body>
        
            <div id="Upload">
                <h1>File upload</h1>
                <p>Congratulations! Your file uploads were successful</p>
            </div>
        
        </body>

    </html>
    I am not a programmer by heart, only by google So any help is highly appreciated ..
    I'm not under the alkafluence of inkahol like some thinkle peep I am!
widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
Working...
X