Koozali.org: home of the SME Server

Obsolete Releases => SME 8.x Contribs => Topic started by: kimjessen2 on March 06, 2015, 10:13:40 AM

Title: file upload code.
Post by: kimjessen2 on March 06, 2015, 10:13:40 AM
hello!
I am trying to create a page where I need to be able to save files on the server.
I have tried many different tuts. but they work on other commercial vebhoteller and it works.
but I can not get it to work on my server which is an SME 8.1

is there anyone who can walk me through what I need to do to get the server to receive files from the upload page.

Kim Jessen
Title: Re: file upload code.
Post by: Stefano on March 06, 2015, 10:22:01 AM
hi, welcome here

this is not a striclty SME related question, anyway..

any web page, in any language (php, perl etc) will work as long as it has the rigth permission

can you give us more details?
Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 12:08:29 PM
Hi many thanks.
I had the same understanding but after trying several times on other web hotels with success, I came just to conclusion that it had to be something with my Setting Up on the server.

Here is the setup I have most successfully.
it is a html form and php receiver.

start.php
Code: [Select]
<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>


upload.php
Code: [Select]
<?php
$target_dir 
"uploads/";
$target_file $target_dir basename($_FILES["fileToUpload"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if(
$check !== false) {
        echo 
"File is an image - " $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        echo 
"File is not an image.";
        
$uploadOk 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo 
"Sorry, your file is too large.";
    
$uploadOk 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo 
"Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo 
"Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo 
"The file "basename$_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo 
"Sorry, there was an error uploading your file.";
    }
}
?>


the 2 files here works on web hotel ONE.COM no problems.

but first error coming on my server is
"File is not an image.Sorry, your file was not uploaded"

what is the difference. when it works elsewhere, it must be something with the setup of the server.
hoping for a little understanding when I have asked other places I get the message "We do not know the SME server, we can not help it should work"
It is somewhat frustrating.

Kim Jessen
Title: Re: file upload code.
Post by: Stefano on March 06, 2015, 12:24:22 PM
where did you put these files?

in a ibay? where?
Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 12:42:57 PM
Hello!
In a Ibay yes.
the files are in HTML folder, where I created a folder "uploads"

completely as I have done on ONE.COM

Kim Jessen
Title: Re: file upload code.
Post by: Stefano on March 06, 2015, 12:49:36 PM
ok..

is php enabled fot that ibay?
are perms correct?
did you check /var/log/messages and /var/log/http/* logs for errors?
Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 01:10:56 PM
hello!
YesPHP is used in this Ibay already
with great success.
the other things I have not looked at.
I do this on the server manager right?

Kim Jessen
Title: Re: file upload code.
Post by: Stefano on March 06, 2015, 01:11:57 PM
you'd better login on your server via ssh and use CLI

Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 01:17:47 PM
hello!
ok there you lost me!
The server is right here beside me.
Can not I just see the 2 files in terminal mode with "vim"
Title: Re: file upload code.
Post by: mmccarn on March 06, 2015, 01:34:39 PM
php uploads are placed into the php "tmp" folder during upload, then moved to your intended destination.

The default value for the php tmp folder is /tmp, but access to this location is denied by default.

Here are some links that might help:
http://wiki.contribs.org/PHP#Modifying_the_PHPBaseDir_setting_for_an_ibay
http://forums.contribs.org/index.php/topic,48816.msg243040.html#msg243040
Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 01:56:49 PM
Hello!
Thank you.
There are definitely some things I need to do before it will work.



Kim Jessen
Title: Re: file upload code.
Post by: kimjessen2 on March 06, 2015, 06:04:11 PM
Hello again

Now I have made the change.
that tmp directory, which is written about that i must create myself ?
But where. in the HTML folder?

Kim Jessen
Title: Re: file upload code.
Post by: guest22 on March 06, 2015, 11:31:35 PM
Please learn the tools you are trying to use. Read the manual. In that manual you will learn that openbasedir restricions are in effect.
Title: Re: file upload code.
Post by: janet on March 06, 2015, 11:48:33 PM
kimjessen2

Quote
that tmp directory .......that i must create myself ?
But where. in the HTML folder?

It can be wherever you want it to be, but you need to specify that location when setting the open base dir setting.
Bug 7011 comment 52 & comment 43 indicate the tmp dir would be at the same level as .../html .../cgi-bin & .../files
Quoting comment 43
/bin/mkdir -p /home/e-smith/files/ibays/$folder_ibay/tmp
/bin/chmod -R 700 /home/e-smith/files/ibays/$folder_ibay/tmp /bin/chown -R www:www /home/e-smith/files/ibays/$folder_ibay/tmp