Question

This is my upload script

<?php
include 'core/init.php';
protect_page();
admin_page();

$fields = array('title', 'description');
foreach($_POST as $key=>$value) {
if(empty($value) && in_array($key, $fields) == true){
    $errors[] = 'All fields are required';
    break 1;
}
}

if(!empty($errors)){
    echo output_errors($errors);
}
else{
#remove slashes from content
$title = stripslashes($_POST["title"]);
$description = stripslashes($_POST["description"]);


if(isset($_FILES["FileInput"]) && isset($_FILES["image"]) && $_FILES["FileInput"]["error"]== UPLOAD_ERR_OK)
{
    ############ Edit settings ##############
    $UploadMainDirectory    = '/center/downloads/';
    $UploadImageDirectory   = '/center/images/';
    ##########################################

    //check if this is an ajax request
    if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){
        die();
    }

    if ($_FILES["FileInput"]["size"] > 1024*1024*1024) {
        die("Main file size is too big!");
    }

    if ($_FILES["image"]["size"] > 1*1024*1024) {
        die("Image size is too big!");
    }

    switch(strtolower($_FILES['FileInput']['type']))
    {
        //allowed file types
        case 'image/png': 
        case 'image/gif': 
        case 'image/jpeg': 
        case 'image/pjpeg':
        case 'text/plain':
        case 'application/x-zip-compressed':
        case 'application/x-rar-compressed':
        case 'application/octet-stream':
        case 'application/zip':
        case 'application/rar':
        case 'application/x-zip':
        case 'application/x-rar':
            break;
        default:
            die('Unsupported main file!'); //output error
    }

    switch(strtolower($_FILES['image']['type']))
    {
        //allowed file types
        case 'image/png': 
        case 'image/gif': 
        case 'image/jpeg': 
        case 'image/pjpeg':
            break;
        default:
            die('Unsupported image file!'); //output error
    }

    $File_Name          = strtolower($_FILES['FileInput']['name']);
    $File_Ext           = substr($File_Name, strrpos($File_Name, '.')); //get file extention
    $Random_Number      = rand(0, 9999999999); //Random number to be added to name.
    $NewFileName        = $Random_Number.$File_Ext; //new file name

    $ImageName          = strtolower($_FILES['image']['name']);
    $ImageExt           = substr($ImageName, strrpos($ImageName, '.')); //get file extention
    $NewImageName       = $Random_Number.$ImageExt; //new file name

    if(move_uploaded_file($_FILES['FileInput']['tmp_name'], $UploadMainDirectory.$NewFileName ) && move_uploaded_file($_FILES['image']['tmp_name'], $UploadImageDirectory.$NewImageName ))
       {
        $fields = array('type', 'name', 'description', 'file', 'image');

        $upload_data = array(
        'type'           => $_POST['type'],
        'name'           => $_POST['title'],
        'description'    => $_POST['description'],
        'file'           => $NewFileName,
        'image'          => $NewImageName,
        );
        array_walk($upload_data, 'array_sanitize');
        $fields = '`' . implode('`, `', array_keys($upload_data)) . '`';
        $data = '\'' . implode('\', \'', $upload_data) . '\'';

        mysql_query("INSERT INTO `downloads` ($fields) VALUES ($data)");

        die('Success! File Uploaded.');
    }else{
        die('Error uploading Files!');
    }

}
else
{
    die('Something went wrong!');
}
}
?>

My problem is that the script is not working, on localhost gives me an error that says that the directory does not exist but it exists. I've uploaded the script on my host, but even there i get the error ... My directory looks like this

enter image description here

How i can fix this ?

Was it helpful?

Solution 2

Is the above code exist in file adm_download_center_process.php and center directory also exist in same directory ??? If yes, then remove "/" before "/center/downloads/" i.e. try with only "center/downloads/" –

OTHER TIPS

You wrote /dir/dir/.... that means you want to use (for windows): C:/dir/dir/... and for linux /dir/dir/... {{C - put there current drive letter site operates on}}. This is calles absolute path what you wanted to use is relative path the path that starts where you are not from the given location.

So you should have

############ Edit settings ##############
$UploadMainDirectory    = 'center/downloads/';
$UploadImageDirectory   = 'center/images/';
##########################################

what would be translated as relative path to current_directory/center/downloads/ and be usable by application.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top