Fixed  Clarification on how Xenforo handles attachment

Blandt

Well-known member
Under IIS, Attachments are not being displayed correctly. (broken images as reported in other threads)

the Data folder contains the thumbnails and the thumbnails are displayed correctly.

the Internal_Data folder contains .data files corresponding to each thumbnail in the Data folder.

My question is how do we store full size images ?
 

Brogan

XenForo moderator
Staff member
Full size images are stored in internal_data\attachments\ and referenced by the xf_attachment_data table.
 

Brogan

XenForo moderator
Staff member
Can the hash function be the cause ?
I wonder if we can get the record from Dave's xf_attachment_data table and the corresponding file name in the internal_data\attachments\ folder?
That might help with working out what the problem is.

Edit: Just checking now.
 

Blandt

Well-known member
Here is one record :

table.PNG

And here is the attachment folder

files.PNG
As you can see there is that prefix of 1 (2 , 3 , 4 respectively)

Could that be the problem ?
 

Brogan

XenForo moderator
Staff member
This is my table hash: 0d16d0469ba1269d061dab1f90aacaa5
And this is the file name: 1-0d16d0469ba1269d061dab1f90aacaa5

But those file sizes you've posted don't match with the table contents.
Are you looking in the correct folder as the file size should be 750KB looking at the table.

table.PNG
file.PNG
 

Blandt

Well-known member
The screen shot above shows the thumbnail folder data/attachment ...

Here is the screen shot of the internal_data/attachment

hash2.PNG
 

Blandt

Well-known member
I'm trying to eliminate possible causes.

Permission is checked and everything is fine.
The only thing left is the hash function not working as intended on windows ? hmmm ... any ideas ?
 

Brogan

XenForo moderator
Staff member
That all looks OK then as far as I can tell.

Oh well, back to the drawing board :D
 

Blandt

Well-known member
Yes ... the IIS trace is giving 403 forbidden error
which usually is about permission :confused: ... blah .. I'll give it some rest ... be back in few
 

Edrondol

Well-known member
You guys do rule. And I thank you for helping me out. I know it's helping you, too, but I'm still very thankful.
 

Blandt

Well-known member
You guys do rule. And I thank you for helping me out. I know it's helping you, too, but I'm still very thankful.
Would you ask your host for your server version : Os distro / PHP and Mysql ? I'd like to compare configurations .. maybe that would help narrow down the problem
 

Brogan

XenForo moderator
Staff member
Would you ask your host for your server version : Os distro / PHP and Mysql ? I'd like to compare configurations .. maybe that would help narrow down the problem
Looking at his cPanel:
MySQL version 5.0.91-community
PHP version 5.2.14
 

z3r010

Member
I'm getting the same issue with:-

Windows Server 2008R2
IIS7.5 fastcgi
PHP 5.3.3
MySQL 5.1.45-community
 

Edrondol

Well-known member
PHP - 5.2.14
MySQL - 5.0.91-community

OS Distro...um...I have a vague idea of what that is and I'm sure I have access to it. Host might take a bit to get the information from.
 

Blandt

Well-known member
Ok I have good news and bad news :D

The good news :
the log shows some errors :

Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: DELAYED option not supported for table 'xf_attachment_view' - library\Zend\Db\Statement\Mysqli.php:77
Generated By: Ben, 27 minutes ago


Stack trace :

#0 C:\inetpub\wwwroot\xenfoo.com\library\Zend\Db\Statement.php(115): Zend_Db_Statement_Mysqli->_prepare('?????INSERT DEL...') #1 C:\inetpub\wwwroot\xenfoo.com\library\Zend\Db\Adapter\Mysqli.php(381): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), '?????INSERT DEL...') #2 C:\inetpub\wwwroot\xenfoo.com\library\Zend\Db\Adapter\Abstract.php(467): Zend_Db_Adapter_Mysqli->prepare('?????INSERT DEL...') #3 C:\inetpub\wwwroot\xenfoo.com\library\XenForo\Model\Attachment.php(480): Zend_Db_Adapter_Abstract->query('?????INSERT DEL...', 4) #4 C:\inetpub\wwwroot\xenfoo.com\library\XenForo\ControllerPublic\Attachment.php(48): XenForo_Model_Attachment->logAttachmentView(4) #5 C:\inetpub\wwwroot\xenfoo.com\library\XenForo\FrontController.php(303): XenForo_ControllerPublic_Attachment->actionIndex() #6 C:\inetpub\wwwroot\xenfoo.com\library\XenForo\FrontController.php(132): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch)) #7 C:\inetpub\wwwroot\xenfoo.com\index.php(15): XenForo_FrontController->run() #8 {main}


Request state
array(3) { ["url"] => string(50) "http://www.xenfoo.com/attachments/jellyfish-jpg.4/" ["_GET"] => array(0) { } ["_POST"] => array(0) { } }



The bad news is I have no idea what's going on :D
 

Brogan

XenForo moderator
Staff member
What's the bet as soon as Mike sees this he'll have it fixed in less time than it took to post that :D
 

Paul M

Well-known member
Its a simple error - the function logAttachmentView() is using a Delayed Insert - but the dastabase table is a Memory table which doesnt support them.

If you fancy a go at fixing it yourself, find the function in \library\XenForo\Model\Attachment.php

(line 470)

public function logAttachmentView($attachmentId)
{
$this->_getDb()->query('
INSERT DELAYED INTO xf_attachment_view
(attachment_id)
VALUES
(?)
', $attachmentId);
}

Remove the word DELAYED and you should be good to go.
 
Top