Skip to main content
Topic: Images not showing in Attachments (Read 2475 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Images not showing in Attachments

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


Re: Images not showing in Attachments

Reply #1

Does it work on this site?

Re: Images not showing in Attachments

Reply #2

Probably missing finfo_open.
I noticed locally, but I thought it was my php that was an odd version...
Bugs creator.
Features destroyer.
Template killer.

Re: Images not showing in Attachments

Reply #3

The image works perfectly in ElkArte, and should i downgrade my PHP version and try?

Re: Images not showing in Attachments

Reply #4

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?

Re: Images not showing in Attachments

Reply #5

Funny thing is that I'm on 7.2 (linux), so I should have it... but I don't. :-\
Bugs creator.
Features destroyer.
Template killer.


Re: Images not showing in Attachments

Reply #7


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

Re: Images not showing in Attachments

Reply #8

@tino how to get the phpinfo details?

Re: Images not showing in Attachments

Reply #9


They are in the admin menu where the server configuration is I think. It’s it’s own tab/section.


Re: Images not showing in Attachments

Reply #11

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.

Re: Images not showing in Attachments

Reply #12

@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.

Re: Images not showing in Attachments

Reply #13

@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?




Re: Images not showing in Attachments

Reply #14

If the one spuds provided is the latest version ( has 1.1.4 at the top ) then yes that's what I would do