0

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 ?

6
  • which directory does not exists? What is the directory you're getting the error message for? Commented Apr 20, 2014 at 16:15
  • where is child directory "downloads" i.e. your path is /center/downloads/ Commented Apr 20, 2014 at 16:21
  • I have all the directories, both /center/downloads/ and /center/images/ but the script is not finding any of them Commented Apr 20, 2014 at 16:31
  • 1
    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/" Commented Apr 20, 2014 at 16:44
  • @PankajGarg This worked, please write this as answer in order to accept it :) Commented Apr 20, 2014 at 17:40

2 Answers 2

1

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.

Sign up to request clarification or add additional context in comments.

Comments

0

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/" –

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.