IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enregistrer fichier dans un champs de type BLOB [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut Enregistrer fichier dans un champs de type BLOB
    Bonjour à tous !

    Depuis ce matin, j'essai désespérément d'enregistrer un fichier PDF dans ma base de données par le biais d'un type BLOB.

    J'ai beau tout tenter, ça ne marche pas. Quelqu'un saurait la syntaxe et comment faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $requeteins = "insert into DOSSENT (DSE_FICHIER) values (EMPTY_BLOB()) returning DSE_FICHIER into :fichier";
    $blob = ocinewdescriptor($conn, OCI_D_LOB);
    $stmt = ociparse($conn,$requeteins);
    OCIBindByName ($stmt, ":fichier", &$blob, -1, OCI_B_BLOB);
    ociexecute($stmt);
    $blob->import("devis.pdf");
    ocicommit($conn);
    Et il me retourne cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: OCI-Lob::import() [function.OCI-Lob-import]: ORA-22990: LOB locators cannot span transactions in XXXX.php on line 24
    Merci pour votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Après 6h de recherche intensive j'ai enfin trouvé la solution. Je vous la mets ici car elle est assez difficile à trouver sur le net !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $requeteins = "insert into DOSSENT (DSE_FICHIER) values (EMPTY_BLOB()) returning DSE_FICHIER into :fichier";
    $blob = ocinewdescriptor($conn, OCI_D_LOB);
    $stmt = ociparse($conn,$requeteins);
    OCIBindByName ($stmt, ":fichier", &$blob, -1, OCI_B_BLOB);
    ociexecute($stmt,OCI_DEFAULT);
    $fichier = fopen($url,'rb');
    if ($blob->save(fread($fichier,1000000)))
    	ocicommit($conn);
    ocifreestatement($stmt);
    ocilogoff($conn);
    Dans le cas d'un fichier "normal", vous pouvez faire directement un savefile comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $requeteins = "insert into DOSSENT (DSE_FICHIER) values (EMPTY_BLOB()) returning DSE_FICHIER into :fichier";
    $blob = ocinewdescriptor($conn, OCI_D_LOB);
    $stmt = ociparse($conn,$requeteins);
    OCIBindByName ($stmt, ":fichier", &$blob, -1, OCI_B_BLOB);
    ociexecute($stmt,OCI_DEFAULT);
    if ($blob->savefile($url))
    	ocicommit($conn);
    ocifreestatement($stmt);
    ocilogoff($conn);
    Dans mon cas, je ne peux pas car le savefile ne fonctionne pas car j'ouvre une page qui me génère du code PDF.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/02/2015, 09h35
  2. Réponses: 5
    Dernier message: 30/06/2011, 21h15
  3. Insertion d'un fichier dans un champ blob
    Par malikoo dans le forum PL/SQL
    Réponses: 1
    Dernier message: 05/01/2009, 18h44
  4. Restreindre le type de fichier dans un champs file
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/11/2007, 09h22
  5. [DEBUTANT]Inserer des fichiers dans des champs blob
    Par tripper.dim dans le forum Débuter
    Réponses: 1
    Dernier message: 19/10/2006, 22h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo