отключить imageresize: imagecreatefromjpeg (): gd-jpeg: библиотека JPEG сообщает о неисправимой ошибке - PullRequest
0 голосов
/ 10 апреля 2020

Привет, я использую php код для моего скрипта

все работает хорошо, но у меня ошибка при изменении размера файла jpg

imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Empty input file in /filepath

im newb ie, поэтому, пожалуйста, сообщите мне, как могу ли я отключить изменение размера изображения для устранения этой ошибки и передачи изображения orginall

файл, который я хочу передать, является обычным изображением jpg, но я не знаю, почему я получаю эту ошибку

это пример изображения URL: https://nex1music.ir/upload/2020-04-10/mohsen-chavoshi-ou-2020-04-10-11-00-50.jpg

this is my php file codes

<?php

define('SIGNATURE', 'signature');
define('BASE_URL',  'website');
define('IMG_WIDTH',  450);
define('IMG_HEIGHT', 450);

/* --------------------------------------------------------------------------- */

if ( ! isset($_POST['title'], $_POST['artist'], $_POST['url320kbps'], $_POST['url128kbps'], $_POST['image']))
{
    header('HTTP/1.1 400 Bad Request');
    exit;
}

$title      = $_POST['title'];
$artist     = $_POST['artist'];
$url320kbps = $_POST['url320kbps'];
$url128kbps = $_POST['url128kbps'];
$image      = $_POST['image'];

set_time_limit(0);

if (is_duplicate($artist, $title))
{
    echo json_encode([
        'duplicate' => true
    ]);
    exit;
}

/* --------------------------------------------------------------------------- */

require_once 'getid3/getid3.php';
require_once 'getid3/write.php';

require_once 'jdf.php';
$dir = jdate('y/m/d', time());

if ( ! file_exists($dir))
    mkdir($dir, 0755, true);

$image_file = "{$dir}/{$artist} - {$title} - ".SIGNATURE.'.jpg';
file_put_contents($image_file, fopen($image, 'r'));

$filename320 = "{$dir}/{$artist} - {$title} - 320 - ".SIGNATURE.'.mp3';
file_put_contents($filename320, fopen($url320kbps, 'r'));

$filename128 = "{$dir}/{$artist} - {$title} - 128 - ".SIGNATURE.'.mp3';
file_put_contents($filename128, fopen($url128kbps, 'r'));

set_id3_tags($filename320, $title, $artist, $image_file, SIGNATURE);
set_id3_tags($filename128, $title, $artist, $image_file, SIGNATURE);
image_resize($image_file, IMG_WIDTH, IMG_HEIGHT);

/* --------------------------------------------------------------------------- */

echo json_encode([
    'duplicate' => false,
    'url_320'   => BASE_URL.$filename320,
    'url_128'   => BASE_URL.$filename128,
    'url_image' => BASE_URL.$image_file
]);

/* --------------------------------------------------------------------------- */

function set_id3_tags($filename, $title, $artist, $image, $signature)
{
    $mp3_writter                    = new getid3_writetags;
    $mp3_writter->filename          = $filename;
    $mp3_writter->tagformats        = ['id3v1', 'id3v2.3'];
    $mp3_writter->overwrite_tags    = true;
    $mp3_writter->tag_encoding      = 'UTF-8';
    $mp3_writter->remove_other_tags = true;

    $mp3_data['title'][]   = $title;
    $mp3_data['artist'][]  = $artist;
    $mp3_data['album'][]   = $signature;
    $mp3_data['year'][]    = date('Y');
    $mp3_data['comment'][] = $signature;

    if (file_exists('cover.jpg'))
        $image = 'cover.jpg';

    $mp3_data['attached_picture'][0]['data']          = file_get_contents($image);
    $mp3_data['attached_picture'][0]['picturetypeid'] = 0x03;
    $mp3_data['attached_picture'][0]['description']   = $signature;
    $mp3_data['attached_picture'][0]['mime']          = 'image/jpeg';

    $mp3_writter->tag_data = $mp3_data;
    $mp3_writter->WriteTags();
}

function image_resize($filename, $width, $height)
{
    $src = imagecreatefromjpeg($filename);
    list($w, $h) = getimagesize($filename);

    $img = imagecreatetruecolor($width, $height);
    imagecopyresampled($img, $src, 0, 0, 0, 0, $width, $height, $w, $h);
    imagejpeg($img, $filename, 100);
}

function is_duplicate($artist, $title)
{
    $directory = new RecursiveDirectoryIterator('.');
    $iterator = new RecursiveIteratorIterator($directory);

    $target = $artist . ' - ' . $title;

    foreach($iterator as $file) {
        if (strpos($file->getFilename(), $target) !== false) {
           return true;
        }
    }

    return false;
}
...