|
Posted by Vic Spainhower on 12/04/06 23:45
Problem Solved - Duplicate form tag causing the File Array to not work.
"Geoffrey" <google.poster@yahoo.com> wrote in message
news:1165123109.088656.316830@f1g2000cwa.googlegroups.com...
> Hmmmm...well, I'm stumped. I've never seen this behavior before and
> don't really know how to explain it. The POST array should contain the
> values of the two input elements in your HTML file (MAX_FILE_SIZE and
> your submit button). The FILES array should contain the file
> information. Even with uploads disabled in php.ini, the POST array
> contents shouldn't change. For curiousity's sake, could you post the
> output of the print_r function for POST and FILES, please?
>
>
> Vic Spainhower wrote:
>> Geoffrey,
>>
>> Thanks for the reply. The FILES array doesn't contain the file name to be
>> uploaded for some reason but the POST array does. What might be the
>> reason
>> for this?? What I don't understand is that since there is a file name
>> passed
>> to the FTP put (even though it's in the POST array) why wouldn't htat
>> work?
>>
>> $target_path = $target_path . basename(
>> $_FILES['userfile']['name']);
>>
>> ** The following statement when executed after the file is selected for
>> upload shows nothing ***
>> echo "target Path: $target_path <br>";
>>
>> ** The following statement when executed after the file is selected for
>> upload contains the name of the file ***
>> $source_file = $_POST["userfile"];
>>
>> $basename = preg_replace( '/^.+[\\\\\\/]/', '', $source_file );
>> $filename = preg_replace( "/[^\w\.-]+/", "_", $basename );
>>
>> Thanks Geoffrey,
>>
>> Vic
>>
>>
>>
>> "Geoffrey" <google.poster@yahoo.com> wrote in message
>> news:1165113033.516042.277030@l12g2000cwl.googlegroups.com...
>> > Hi Vic --
>> >
>> > PHP stores information about file uploads in the $_FILES superglobal
>> > array, not $_POST. Using the proper array should solve your problem.
>> >
>> > Geoffrey
>> >
>> >
>> > Vic Spainhower wrote:
>> >> Hello,
>> >>
>> >> I am trying to do a FTP file upload which works fine on my localhost
>> >> but
>> >> on
>> >> my ISP server it fails. I can't seem to find where I can go to find
>> >> the
>> >> specific cause of the failure. In both cases the file is being
>> >> transmitted
>> >> to the same FTP server and using the same PHP script so it shouldn't
>> >> be a
>> >> file size or login credentials problem. Could someone please help me
>> >> out
>> >> and
>> >> give me some ideas what is wrong.
>> >>
>> >> I would really appreciate any help someone could provide as I've spent
>> >> many
>> >> hours on this looking for answers. I've contacted my ISP and they've
>> >> looked
>> >> at everything and also do not have an answer.
>> >>
>> >> Thanks a lot,
>> >>
>> >> Vic
>> >>
>> >> Here is the PHP form and script I'm using:
>> >>
>> >> Form:
>> >>
>> >> <form enctype="multipart/form-data" action="fileupload.php"
>> >> method="POST">
>> >> <input type="hidden" name="MAX_FILE_SIZE" value="300000" />
>> >> Choose a file to upload: <input name="uploadedfile" size="60"
>> >> type="file"
>> >> />
>> >> <input type="submit" name="continue" value="Continue" />
>> >> </form>
>> >>
>> >>
>> >> PHP:
>> >>
>> >> // set up basic connection
>> >> $ftp_server = "ftp.showmyhorse.com";
>> >> $conn_id = ftp_connect($ftp_server);
>> >>
>> >> // login with username and password
>> >> $ftp_user_name = "XXX";
>> >> $ftp_user_pass = "XXX";
>> >> $login_result = ftp_login($conn_id, $ftp_user_name,
>> >> $ftp_user_pass);
>> >>
>> >> // check connection
>> >> if ((!$conn_id) || (!$login_result)) {
>> >> $_SESSION['message_new']= "Attempted to connect to
>> >> $ftp_server for user $ftp_user_name has failed! ";
>> >> break;
>> >> } else {
>> >> //echo "Connected to $ftp_server, for user
>> >> $ftp_user_name";
>> >> }
>> >>
>> >> // upload the file
>> >> $source_file = $_POST["uploadedfile"];
>> >>
>> >> $basename = preg_replace( '/^.+[\\\\\\/]/', '',
>> >> $source_file );
>> >> $filename = preg_replace( "/[^\w\.-]+/", "_", $basename );
>> >> $ShowID = $_SESSION['ShowID'];
>> >> $destination_file = $ShowID . "_" . $filename;
>> >>
>> >> echo "source_file: $source_file <br>";
>> >> echo "filename : $filename <br>";
>> >> echo "destination_file: $destination_file<br>";
>> >>
>> >> $upload = ftp_put($conn_id, $destination_file, $source_file,
>> >> FTP_BINARY);
>> >>
>> >> // check upload status
>> >> if (!$upload) {
>> >> $_SESSION['message_new']= "FTP upload has failed;
>> >> Contact
>> >> support@showmyhorse.com!";
>> >>
>> >> } else {
>> >> //echo "Uploaded $source_file to $ftp_server as
>> >> $destination_file";
>> >> $_SESSION['message_new']="Uploaded $filename as
>> >> $destination_file";
>> >> }
>> >>
>> >> // close the FTP stream
>> >> ftp_close($conn_id);
>> >>
>> >> # Now add the schedule name to the database
>> >> $connection = mysql_pconnect($host,$user,$password)
>> >> or die ("Couldn't connect to server.");
>> >> $db = mysql_select_db($database, $connection)
>> >> or die ("Couldn't select database.");
>> >>
>> >> $query = "UPDATE ShowInfo SET ShowSchedule =
>> >> '$destination_file'
>> >> WHERE ShowID=$ShowID";
>> >> $result = mysql_query($query)
>> >> or die("Problems encountered adding schedule information
>> >> to
>> >> database
>> >> Query: $query <br> database: $database <br>");
>> >
>
Navigation:
[Reply to this message]
|