Re: Writing a file from a Sub-Domain form to Upper Domain

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 20, 2014 at 1:49 PM, Stuart Dallas <stuart@xxxxxxxx> wrote:

> Sorry, hit the wrong button and sent before I'd finished.
>
> On 20 August 2014 18:47, Stuart Dallas <stuart@xxxxxxxx> wrote:
>
>>
>> On 20 August 2014 18:43, Don Wieland <donw@xxxxxxxxxxxxxxxxxx> wrote:
>>
>>> On Aug 20, 2014, at 10:19 AM, Aziz Saleh wrote:
>>>
>>> > If you show us the code it would be easier to help.
>>>
>>> This is the error when adding the error_reporting:
>>>
>>>  Warning: move_uploaded_file(../../../media/images/pic2.jpg): failed to
>>> open stream: No such file or directory in
>>> /home/rtsadven/public_html/wrightcheck/admin/resources/php/upload_image.php
>>> on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpKuJ4td'
>>> to '../../../media/images/pic2.jpg' in
>>> /home/rtsadven/public_html/wrightcheck/admin/resources/php/upload_image.php
>>> on line 40
>>>
>>> Here is my code - there are a few debugging echoes though - sorry
>>>
>>> //Set the values resulting from the Upload form POST.
>>> $tmp_name = $_FILES['file'] ['tmp_name'];
>>> $name = $_FILES['file'] ['name'];
>>> $size = $_FILES['file'] ['size'];
>>> $type = $_FILES['file'] ['type'];
>>> // $error = $_FILES['file'] ['error'];
>>> $extension = strtolower(substr($name, strpos($name, '.') +1));
>>>
>>> // If values are set and not empty move_upload_file is invoked to place
>>> the uploaded file into the web server directory identified by $directory.
>>> if (isset($name)) {
>>>         // Check for a valid image filetype.
>>>         if (!empty($name)) {
>>>                 // echo 'Filename is not empty.<br><hr>';
>>>
>>>                 if ($extension == 'jpg' || $extension == 'jpeg' ||
>>> $extension == 'png' || $extension == 'gif') {
>>>
>>>                         echo 'Temporary Filename: '.$tmp_name.'<br><hr>';
>>>                         echo 'Actual Filename: '.$name.'<br><hr>';
>>>                         $directory = '../../../media/images/';
>>>
>>>         //              $directory = '../../../resources/uploads/'; This
>>> fails also so it does not appear to be a permissions issue as we should be
>>> able to create a file into this project directory.
>>>                         $destination = $directory.$name;
>>>                         echo 'Upload Complete Path:
>>> '.$destination.'<br><hr>';
>>>                         echo '<a href="'.$destination.'"
>>> target="_blank">link</a><br><hr>';
>>>
>>>                         if (move_uploaded_file($tmp_name, $destination))
>>> {
>>>                         // This is failing but I cannot figure out why.
>>> I do not get an error message in the error.php file in the server directory
>>> /edit_image/error.php like I get any other time there is a php error.
>>>         //              if (move_uploaded_file($tmp_name,
>>> '../../../resources/uploads/uploaded.jpg')) {
>>>
>>>         //                      echo 'Image file '.$name.' successfully
>>> uploaded to '.$directory.'.';
>>>                                 echo 'Image file successfully
>>> uploaded.<br><hr>';
>>>                         } else {
>>>                                 echo 'move_upload_file failed!<br><hr>';
>>>                         }
>>>
>>>                 } else {
>>>                         echo '<span class="formErrorMessage">Image File
>>> Type must be jpg, jpeg, png or gif!</span><br><br>';
>>>                 }
>>>
>>>         } else {
>>>                 echo '<span class="formErrorMessage">Please choose a
>>> file to upload!</span><br><br>';
>>>         }
>>> }
>>>
>>
> I would always recommend using absolute paths rather than relative, mainly
> because it helps debugging.
>
> Change:
>
> $directory = '../../../media/images/';
>
> to:
>
> $directory = dirname(__FILE__).'../../../media/images/';
>
> And check the path in the error message is correct.
>
> -Stuart
>
> --
> Stuart Dallas
> 3ft9 Ltd
> http://3ft9.com/
>

When dealing with files I usually set a define (or a config) for the file
location in a shared spot between all the code (add public_html if you want
to make the files public):

define('FILE_LOCATION', '/home/rtsadven');
// If you want the files to be public accessed
// define(FILE_LOCATION, ' /home/rtsadven/public');

Then use it in the code:

$directory = FILE_LOCATION . '/media/images/

This will enable you to change the location in the event you want to move
to CDN or a different hard drive easily.

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux