Hei,
Luen tiedoston palvelimelta näin:
$pdf = file_get_contents($uploadfile); $pdf = base64_encode($pdf);
Ja lataan sen tietokantaan näin:
$query = $db->prepare($sql); $query->bindParam(1, $pdf, PDO::PARAM_LOB); $query->execute();
Mutta tiedosto ei toimi kun sen downloadaa tietokannasta.
Koodi on ennen toiminut ilman ongelmia mutta nyt ei toimi. Voisiko se johtua siitä, että uploadkentään tulee uuden selain tietoturvasyteemin takia C:/fakepath/tiedosto.pdf?
Tiedoston lukeminen tietokannasta ei vielä kerro yhtään mitään siitä, kuinka se tarjotaan selaimelle. Laitahan taas kerran relevantti osa koodista ja yritetään sitten arpoa.
Juu se tarjotaan selaimelle ExtJS 3.4.0 frameworkin AJAX lomakkella ja lomakkeen upload-kentään tulee aina C:/fakepath/tiedosto.pdf.
JavaScript-koodi on sen verran pitkä, että sitä ei viitsi laittaa tähän.
Koodi on täällä: http://application.i4ware.fi/#START
Lisäys: Nyt toimii. Upload-kansion hakemistopolku olikin vain väärin.
ymmärsinkö nyt jotenkin väärin, vai miksi tallennat tiedoston levylle ennen tietokantaan siirtoa? Onko jokin erityinen syy mikset tallenna vastaanotettua binäärimössöä suoraan kantaan? Vaikea uskoa että PHP ei tukisi suoraan upload streamin käsittelyä ilman tmp file -kikkailua.
Ei tullut meileen lukea tiedsto temp-kansiosta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.