The knowledge base article indicates a problem with the path name being too long. Unfortunately the knowledge base article does not give an actual definition of how short/long the path needs to be to display correctly. However to help you resolve the problem you need to see the full path. To do this, go into dataviewer and use the following function (or if you don't have FMPAdvanced create a new calculation field with this calculation:
GetValue ( containerfieldtable&name ; 2 )
NB: The file will also show as missing if the underlying file has been deleted - even though the file reference will remain.
Yea the knowledge base article described my problem exactly but really doesn't do much to help me fix it. I went to the Data Viewer and tried entering your code. I think I am missing something because all I can get back is the name of the file, not the full URL.
This code returns nothing:
GetValue ( Hart Sculpture::Image ; 2 )
This code returns 'Appassionata.jpg' (Or whatever file it's on):
GetValue ( Hart Sculpture::Image ; 1 )
Of the images that come up 'Missing' and the images that are actually showing up I don't see any differences in the Data Viewer when monitoring these expressions.
Thank you for the help!
Field content can also show as missing if using Open storage and a user with access to the open storage area has changed a directory or file name, or, even, in some cases, has used restricted characters within a directory or file name.
I am regularly amused at attachment files I get which contain multiple punctuation (periods, slashes, colons, etc.) which could affect a file path string, i.e.: "myfile v2.3.4 .pdf.archive.rtf". Modern OSs allow and can often resolve such filenames to open with the correct application, but when such a string is entered as part of a filepath, watch out!
When external storage was introduced in v12, the engineers at FMI stated they originally planned to offer only what became known as Secure Storage, but eventually opted to include the option for Open Storage in spite of the risks it opened up to users doing stuff that might break it. They envisioned Open Storage being a nice touch for personal photo archives rather than for business servers.
I would urge you to let the FM file/server use Secure storage (and leave the storage directories untouched) unless you NEED open storage for some reason and are willing to accept the risks of users being in it.
If you get nothing from the code: GetValue ( Hart Sculpture::Image ; 2 ) then that means that the field is stored locally in the database file itself.
When you insert a picture you are given an option at the bottom of the Insert Picture dialog box to "Store only a reference to the file". If you choose this option the picture is not stored in the database file itself - instead a reference to the file is stored. When you choose this option you will then get a file path when using the code: GetValue ( Hart Sculpture::Image ; 2 ).
tried storing the container data locally/ externally secured and externally open.
Changing the storage options may have caused you some issues with your actual data relating to where the images are stored.
Ok that helps. I changed the storage location to external secure and now the code is returning the size of each image from the code GetValue ( Hart Sculpture::Image ; 2 ). The few images that were showing up before have gone to 'Missing:' after changing it. What steps should I take to get them to show up in the container?
Thank you for helping with this!
Hi Stephen, thanks for the response. My file name has no special characters in it so that shouldn't be a problem. I am now using external secure storage but the images still aren't showing up. I can tell they're still there because I can save them or copy/paste them to Photoshop. Do you have any ideas on how I can get them to show up in the container? Thanks for helping out!
With the changes in storage options the link between the storage reference and the image files themselves may have been broken. As long as you copy and save the images outside of FM first I think you should delete the data in the container in each of the records that is not working correctly and insert it again. Then it should be fine.
Thank you for the help Chris. I tired deleting the data from the container and dragging it back in and it still says 'Missing' even though I know the file is there. It says 'Missing' no matter what image I drag in, as in it will just show the file name. Any advice?
It might be the length of the file path as per the original knowledge base article that you linked to. And as we already noted it doesn't say how short the path needs to be to solve the problem. As long as it is working for you, you might need to just ignore at this stage the fact it says missing. From the Knowledge base article it appears to be an issue in versions 12 & 13 - so a possible way around it might be to upgrade to V14.
Hi Chris, I believe you are correct. The only way it wouldn't work from a new image is if it had something to do with that. It does say on the knowledge base article that I can, "Shorten the length of the database filename, open storage path, and/or container filename."
Can you advise on where I could change any of those things? Do I have to log into the administrator panel or can I do it from FMP? Thank you for all the help, Chris!