Page 1 of 1

PHP - Problem with POST files

Posted: Wed Apr 29, 2009 12:08 pm
by koanzen1940
Hi everybody,

I have a server (lets call it S_1) running IIS and PHP over Windows 2008 and I'm trying to make an ftp from that server to a second server (lets call it S_2) through the users connected to de S_1 via http (website).

The clients go to S_1 through a browser (where is the web application) and they charge a picture file that should be transfer from their computers to de S_2.

The method used to send the file is POST, but the problem is that when I retrieve the PATH information of the file (using a client connection), It shows the file name but not the path. However, when I make the same test but openning the website from the same S_1, then it sends the file and the path complete.

The input that I use to locate the file is:
<input name="archivo" type="file" id="1"/>

The code I'm using to retrieve the file information is:
$_POST["archivo"] ## Using PHP

I really appreciate all the help that you can give

Re: PHP - Problem with POST files

Posted: Thu Apr 30, 2009 2:11 am
by it2051229
I think you're doing it wrong.. I mean I haven't used $_POST for uploading files but I use $_FILE....
there are a lot of tutorial on uploading files and you can google it.

Re: PHP - Problem with POST files

Posted: Thu Apr 30, 2009 2:14 am
by Benjamin
Be sure to set the forms enctype:

Code: Select all

 
enctype="multipart/form-data"
 
And dig around in the manual:

http://us2.php.net/manual/en/features.f ... method.php

Re: PHP - Problem with POST files

Posted: Thu Apr 30, 2009 8:45 am
by koanzen1940
I solved with the next code:

Code: Select all

 
<?php
    $cid = ftp_connect("xxx.xxx.xxx.xxx");
    $resultado = ftp_login($cid, "usr","pass");
    if ((!$cid) || (!$resultado)) {
        echo "Connection failed"; die;
    } else {
        echo "Connected.";
    }
    ftp_pasv ($cid, true) ;
    $local = $_FILES["archivo"]["name"];
    $remoto = $_FILES["archivo"]["tmp_name"];
    $tama = $_FILES["archivo"]["size"];
 
    $ruta = "E:/data/".$local;
 
 
    if ($tama<=$_POST["MAX_FILE_SIZE"]){
        if (is_uploaded_file($remoto)){
            copy($remoto, $ruta);
            echo(" Archivo arriba ");       
        }
        else {
            echo "Cant upload de file " . $local;
        }
    } else {
        echo "Exceeded the max size".<br />";
    }
    echo " Ruta: " . $ruta;
 
    ftp_close($cid);
?>