Jump to content

phppup

Members
  • Posts

    741
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by phppup

  1. Yes, I understand that.

    But shouldn't calling the EXIF again after the script is ended bring up the new information?  I even tried to re-run the function as function newInfo, but it pulled the same data.

  2. I used        print_r($exif, 1)     - -  not sure of the differention of print_r($exif)     - -  to get a handle on things.

    Now, for confirmation, I want to print EXIF data at the end of the script to verify that the function was successful and that the EXIF data was changed.  However, even though I have confirmed that the actual image was altered, the EXIF that is printed afterward remains identical to the original.

    I have tried to rename it and change the location but the results are the same.  What do I need to do in order to get the revised EXIF data for the same file?

  3. The heart of the script is here

        $directoryList = opendir($directory);
            while($file = readdir($directoryList)) {
                if ($file != '.' && $file != '..') {
                    $path = $directory . '/' . $file;
                    if (is_readable($path)) {
                        if (is_dir($path)) {
                            return scanDirectoryImages($path, $exts);

    Yet none of my SORT commands have altered the (seemingly) random selection of images.

    What sort command and placement would be recommended?

  4. I have a PHP script that reads the image files in a folder and displays them for viewing.

    When originally tested with three images, it seemed to be displaying them in alphabetical order by name (as desired).

    Now, with more image files added, it is displaying the pictures in a seemingly random order.  Can I use a SORT command similar to the method for organizing data from a database in my script (to organize the files by name)?

  5. Thanks for the lesson.

    And it seems that even altering rotation in Photo Viewer (and I'm assuming most 'common' tools) changes the rotation that the user sees, but either erases it or leaves it at 1 (behind the scenes).  Perhaps professional software like Photoshop offers more options.

    It is rather interesting that the info is erased, but I digress.  Thanks again for the help.

  6. BEFORE
    
    Array
    (
        [FileName] => myTest.jpg
        [FileDateTime] => 1574967654
        [FileSize] => 12566
        [FileType] => 2
        [MimeType] => image/jpeg
        [SectionsFound] => COMMENT
        [COMPUTED] => Array
            (
                [html] => width="500" height="244"
                [Height] => 244
                [Width] => 500
                [IsColor] => 1
            )
    
        [COMMENT] => Array
            (
                [0] => CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
    
            )
    
    )
    
    AFTER
    
    Array
    (
        [FileName] => myTest.jpg
        [FileDateTime] => 1574967654
        [FileSize] => 12566
        [FileType] => 2
        [MimeType] => image/jpeg
        [SectionsFound] => COMMENT
        [COMPUTED] => Array
            (
                [html] => width="500" height="244"
                [Height] => 244
                [Width] => 500
                [IsColor] => 1
            )
    
        [COMMENT] => Array
            (
                [0] => CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80
    
            )
    
    )

     

  7. The test image is on the server in an upload folder which is in the same folder as this script (above).

    I confirmed connectivity to the image by printing EXIF data, but the image did not change.

    If it were overwritten, then the image file's 'last modified' info would change.

    For some reason, nothing is being altered or created from the original file.

    Do I need to move or create a line in the script?

  8. So how come I am getting no result and you have success? What an I missing?

    How do I transfer the unaltered pieces of EXIF data?

    I've read multiple webpages. Most accept that it's lost in the rotation process, but that seems somewhat of a lazy inevitability.

  9. Yes, I am going to try that.

    If I'm understanding correctly, the script checks the orientation inside the EXIF and then changes the degrees of rotation accordingly.

    Does the new image then contain EXIF info that head been adjusted to reflect the new orientation?

     

  10. I have some photos that were taken using a cellphone in an upright/vertical position.

    They were downloaded and placed in a folder to be viewed on a webpage but they displayed horizontally/sideways (with the persons head on the left).

    I am assuming that the EXIF information in the image tells it which side is up and what the intended 'top' of the picture should be..

    I want to have a PHP function that will rotate the image to its intended display position so that photos of mountain ranges [intentionally holding the smartphone sideways] are horizontal and portraits [where the smartphone in upright] are vertical.

    I placed this code in a PHP file but got no change in the image:

    
    function correctImageOrientation($filename) {
      if (function_exists('exif_read_data')) {
        $exif = exif_read_data($filename);
        if($exif && isset($exif['Orientation'])) {
          $orientation = $exif['Orientation'];
          if($orientation != 1){
            $img = imagecreatefromjpeg($filename);
            $deg = 0;
            switch ($orientation) {
              case 3:
                $deg = 180;
                break;
              case 6:
                $deg = 270;
                break;
              case 8:
                $deg = 90;
                break;
            }
            if ($deg) {
              $img = imagerotate($img, $deg, 0);        
            }
            // then rewrite the rotated image back to the disk as $filename 
            imagejpeg($img, $filename, 95);
          } 
        } 
      } 
    }
    
    $filename = 'upload/myTest.jpg';
    
    correctImageOrientation($filename);

    Am I using the correct approach to get the desired result?

    Is the code correct?

     

  11. I don't have access to my computer at the moment, but...

    The first script is a basic HTML form (with some JS and CSS links) that is saved as a PHP file.

    To combine them, I have simply cut and pasted the form code (in its entirety) below the PHP code (displayed previously).

    I have not changed any file names or paths.

    Also, after deeper investigation, I saw a line in a jQuery file (not my forte) that was written as "data.html" .  Is it possible that it is falling to find "data" because AFTER my modification there is no longer an HTML file? If this is true, can I redirect it to the PHP file?

    Perhaps a better question would be "What is the benefit to keeping my form and the PHP that process it within a single file?

    Thanks for the help and HAPPY THANKSGIVING.

  12. I already have a working PHP/HTML uploading form that I've been working on and tweaking as a single PHP file.

    Now, I am attempting to integrate a progress bar.

    It seems almost impossible to find a working script to show the progress of multiple files as they upload.  However, I have one that is "good enough" and have broken it down thusfar so that I can effectively integrate it into my working script.

    At this point, (aide from the JQuery, CSS, etc.) it consists primarily of two files: The first is a PHP file containing the form and basic links for function and style.

    The second is a PHP upload file that is handling the "heavy lifting."  I have broken it down to this:

    $dir = 'uploads/';
    $count = 0;
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['files']))
    {
      // loop all files
      foreach ( $_FILES['files']['name'] as $i => $name )
      {
    
        // now we can move uploaded files
          if( move_uploaded_file($_FILES["files"]["tmp_name"][$i], $dir . $name) )
            $count++; 
      }
    
      echo json_encode(array('count' => $count));
    
    }

    No names or file locations have been changed and it functions as originally designed in this condition.  However, if I combine the first file with this file, I loose the  

    echo json_encode(array('count' => $count));

    result, which is expanded in another file to be a final message of "You have uploaded $count files successfully."

    What am I doing wrong or missing?  Is there an easier way to do this?  A link to a fancy progress bar for multiple file upload would be wonderful, as most that I've found actually do not work.

  13. I have an index HTML form that has a JavaScript link and action = 'xyz.php' 

    Everything works fine. 

    I've seen PHP scripts with HTML form after the closing tag ?> and they work.

    Yet when I included my HTML g form after my PHP code, some of my JS stopped working.

    What are the protocols to combining PHP and HTML?

    Which should run first?

    When is the action run?

     

  14. Thanks greatly to cyberRobot. 

    Using the diagnostic PRINT line assured me that the UPLOAD is being grabbed and effectively moving files.

    Now I need to focus on the code.  At this point, I think these lines are where my problem lies

    if($dir = opendir($startingFolder)){
    	while(($file = readdir($dir))!== false){

    The original scripting (which works) is designed to take folders from an established folder rather than from an upload.  So my thinking is that I need to initiate a transition.  I have tried replacing these lines with

    foreach ($_FILES["upload"]["error"] as $key => $error)
    {
           $tmp_name = $_FILES["upload"]["tmp_name"][$key];
           if (!$tmp_name) continue;
    
           $name = basename($_FILES["upload"]["name"][$key]);
    
        if ($error == UPLOAD_ERR_OK)
        {

    but that is apparently incorrect.

    What coding can I use to bridge the gap to allow the uploaded files to continue through the scripted process?

     

  15. I am double checking my code and I have had the correct syntax in place (ie: $startingFolder = $_FILES['upload']; )  yet I am not getting a result unless a switch back to $startingFolder = 'myLocalstorage/';  (at which point everything runs fine.

    Is there a diagnostic or echo that I can use to confirm a connection to the uploading items.

    My upload is confirming that the items are selected, but I am not receiving a success message nor am I seeing a result in my destination folder when I upload.

     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.