Koozali.org: home of the SME Server

file upload code.

Offline kimjessen2

  • 7
  • +0/-0
file upload code.
« 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

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: file upload code.
« Reply #1 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?

Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #2 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
« Last Edit: March 06, 2015, 12:10:50 PM by kimjessen2 »

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: file upload code.
« Reply #3 on: March 06, 2015, 12:24:22 PM »
where did you put these files?

in a ibay? where?

Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #4 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

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: file upload code.
« Reply #5 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?

Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #6 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

Offline Stefano

  • *
  • 10,839
  • +2/-0
Re: file upload code.
« Reply #7 on: March 06, 2015, 01:11:57 PM »
you'd better login on your server via ssh and use CLI


Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #8 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"
« Last Edit: March 06, 2015, 01:28:34 PM by kimjessen2 »

Offline mmccarn

  • *
  • 2,627
  • +10/-0
Re: file upload code.
« Reply #9 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

Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #10 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
« Last Edit: March 06, 2015, 02:22:21 PM by kimjessen2 »

Offline kimjessen2

  • 7
  • +0/-0
Re: file upload code.
« Reply #11 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

guest22

Re: file upload code.
« Reply #12 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.

Offline janet

  • ****
  • 4,812
  • +0/-0
Re: file upload code.
« Reply #13 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
« Last Edit: March 07, 2015, 12:28:43 AM by janet »
Please search before asking, an answer may already exist.
The Search & other links to useful information are at top of Forum.