ElkArte Community

Project Support => Support => Topic started by: Jason on June 22, 2018, 01:11:55 pm

Title: Images not showing in Attachments
Post by: Jason on June 22, 2018, 01:11:55 pm
When i attached an image (jpg format), the file gets uploaded and in the end it shows as broken image in the attachment bar. Plus i am not getting the option to share the image as thumbnail or full image

Title: Re: Images not showing in Attachments
Post by: Spuds on June 22, 2018, 05:23:55 pm
Does it work on this site?
Title: Re: Images not showing in Attachments
Post by: emanuele on June 23, 2018, 08:11:48 am
Probably missing finfo_open.
I noticed locally, but I thought it was my php that was an odd version...
Title: Re: Images not showing in Attachments
Post by: Jason on June 23, 2018, 10:11:04 am
The image works perfectly in ElkArte, and should i downgrade my PHP version and try?
Title: Re: Images not showing in Attachments
Post by: Spuds on June 23, 2018, 11:02:29 am
Don't downgrade .... if what emanuele suspects is correct it would appear you are missing a PHP extension.  What OS and version of PHP are you running?
Title: Re: Images not showing in Attachments
Post by: emanuele on June 23, 2018, 12:12:57 pm
Funny thing is that I'm on 7.2 (linux), so I should have it... but I don't. :-\
Title: Re: Images not showing in Attachments
Post by: Jason on June 23, 2018, 02:12:01 pm
@Spuds & @emanuele

Title: Re: Images not showing in Attachments
Post by: tino on June 23, 2018, 02:14:38 pm

Do you have a copy of your phpinfo?

Mine has a section called fileinfo and has the following in it;

fileinfo    
fileinfo support    enabled
version    1.0.5
libmagic    517
Title: Re: Images not showing in Attachments
Post by: Jason on June 26, 2018, 12:50:16 pm
@tino how to get the phpinfo details?
Title: Re: Images not showing in Attachments
Post by: tino on June 26, 2018, 02:19:42 pm

They are in the admin menu where the server configuration is I think. It’s it’s own tab/section.
Title: Re: Images not showing in Attachments
Post by: Jason on June 26, 2018, 02:55:29 pm
@tino Here you go,

Title: Re: Images not showing in Attachments
Post by: tino on June 26, 2018, 03:12:46 pm
It seems you don't have fileinfo included, I can see the disable-fileinfo in the configuration setting. so I would go with emanuele's issue, not sure how you get around that one.

Code: [Select]
// Mime Type Checker
function get_mime ($filename,$mode=0) {

    // mode 0 = full check
    // mode 1 = extension check only

    $mime_types = array(

        'txt' => 'text/plain',
        'htm' => 'text/html',
        'html' => 'text/html',
        'php' => 'text/html',
        'css' => 'text/css',
        'js' => 'application/javascript',
        'json' => 'application/json',
        'xml' => 'application/xml',
        'swf' => 'application/x-shockwave-flash',
        'flv' => 'video/x-flv',

        // images
        'png' => 'image/png',
        'jpe' => 'image/jpeg',
        'jpeg' => 'image/jpeg',
        'jpg' => 'image/jpeg',
        'gif' => 'image/gif',
        'bmp' => 'image/bmp',
        'ico' => 'image/vnd.microsoft.icon',
        'tiff' => 'image/tiff',
        'tif' => 'image/tiff',
        'svg' => 'image/svg+xml',
        'svgz' => 'image/svg+xml',

        // archives
        'zip' => 'application/zip',
        'rar' => 'application/x-rar-compressed',
        'exe' => 'application/x-msdownload',
        'msi' => 'application/x-msdownload',
        'cab' => 'application/vnd.ms-cab-compressed',

        // audio/video
        'mp3' => 'audio/mpeg',
        'qt' => 'video/quicktime',
        'mov' => 'video/quicktime',

        // adobe
        'pdf' => 'application/pdf',
        'psd' => 'image/vnd.adobe.photoshop',
        'ai' => 'application/postscript',
        'eps' => 'application/postscript',
        'ps' => 'application/postscript',

        // ms office
        'doc' => 'application/msword',
        'rtf' => 'application/rtf',
        'xls' => 'application/vnd.ms-excel',
        'ppt' => 'application/vnd.ms-powerpoint',
        'docx' => 'application/msword',
        'xlsx' => 'application/vnd.ms-excel',
        'pptx' => 'application/vnd.ms-powerpoint',


        // open office
        'odt' => 'application/vnd.oasis.opendocument.text',
        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
    );

    $ext = strtolower(array_pop(explode('.',$filename)));

    if (function_exists('mime_content_type') && $mode==0) {
        $mimetype = mime_content_type($filename);
        return $mimetype;
    }

    if (function_exists('finfo_open') && $mode==0) {
        $finfo = finfo_open(FILEINFO_MIME);
        $mimetype = finfo_file($finfo, $filename);
        finfo_close($finfo);
        return $mimetype;

    } elseif (array_key_exists($ext, $mime_types)) {
        return $mime_types[$ext];
    } else {
        return 'application/octet-stream';
    }
}

The above code might help to use instead of the finfo function.
Title: Re: Images not showing in Attachments
Post by: Spuds on June 26, 2018, 07:07:16 pm
@tino is on the right track with that function.   I wiped one up as well but it does not fallback on file extension sniffing.

So attached is an updated Attachments.subs.php (for sources/subs) and an updated Attachment.controller.php (for sources/controllers).   The new function is at the bottom of the subs file and the controller was updated to call the new function.  Let us know if this works for you or not.
Title: Re: Images not showing in Attachments
Post by: Jason on June 27, 2018, 01:08:28 pm
@Spuds Thanks a lot, it fixed the issue. I tried to upgrade my board to 1.1.4 and found an issue. So i need to place the original attachment files from Elkarte pack and run the patch. Once done i can replace the files with the one given by you right?



Title: Re: Images not showing in Attachments
Post by: tino on June 27, 2018, 02:49:12 pm
If the one spuds provided is the latest version ( has 1.1.4 at the top ) then yes that's what I would do