Rimango dell'idea che salvare le immagini direttamente su db alla lunga rischi di appesantire e rallentare il database (come si evince dal link di StackOverflow). In che formato sono salvate sul database? Binary? Base64?
Come si vede dalla documentazione di Facebook: (developers.facebook.com/docs/graph-api/reference/photo#Creating)
The URL of a photo that is already uploaded to the Internet. You must specify this or a file attachment
Se non vuoi salvare le immagini su disco, potresti avere uno script php tipo *pictures/picture.php?id=x *dove poi recuperi il parametro get, esegui una query sul database per recuperare l'immagine e usi una funzione php per riconvertirla in jpg.
Ci dici che facebook non accetta immagini come flusso di dati, forse che controlli che l'url finsica con .jpg/.png o un'altra estensione valida? In tal caso puoi provare a "mascherare" l'url ocn mod rewrite o simile.