Προς το περιεχόμενο

Βοήθεια με blob files και files...


mixalis8

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν παιδιά χρειάζομαι άμεση βοήθεια... Τόσο καιρό αποθηκεύω στην βάση δεδομένων μου αρχεία. (blob) τώρα όμως αποφάσισα να τα έχω κανονικά αρχεία σε κάποιο φάκελο. Θέλω όμως ότι αρχεία έχω τώρα σε blob να τα κάνω αυτόματα files σε φακελό. Μπορεί να με βοηθήσει κάποιος??? thanks

Δημοσ.

θα γράψεις ενα πρόγραμμα που θα διαβάζει τα blobs και θα τα γράφει ως αρχεία στο filesystem. Σε τι θα το γράψεις; ειτε σε μια απο τις γνωστές γλώσσες προγραμματισμού, είτε στη γλώσσα που υποστηρίζει εσωτερικά η βάση σου.

αυτά. :)

χωρις να διευκρινήσεις ποιά βάση χρησιμοποιείς, δεν μπορούμε να επεκταθούμε.

Δημοσ.

zip arxeia kai ta ekanes blob? itan la8os ontws

 

Katarxin prin ta apo8ikeuseis stin basi den ta kratages ena back-up san zip? Mallon oxi gia na mas les oti 8eleis na ta metatrepseis e?

 

Einai polla? Mporeis na ta katebaseis an den ta exeis ston skliro sou kai apo ekei peta ta se enan katalogo, kai me phpMyAdmin bale ena neo pedio me tin address twn zip kai se ena ena arxeio manually bale thn dieu8insi pou einai

 

Auto an exeis liga ews arketa arxeia..simferei apo to na psaxneis i xeirotera na kaneis ena tetoio programma

 

Ean einai para polla..mallon 8es ena script

 

Auta pou sou lew isws kai ta xereis idi alla ta egrapsa mpas kai oxi

Gia to script omologw oti den to exw xanadei kai den mporw na boi8isw ousiastika..

http://php.benscom.com/manual/el/ref.zip.php

Δημοσ.

Καταρχάς βρίσκεις με ποιον τρόπο θα κωδικοποιείς τα filenames. Π.χ. δυο χρήστες μπορεί να σου στείλουν το αρχείο τεστ.txt.

Εσύ θα πρέπει να τα αλλάξεις ώστε να χρησιμοποιούν διαφορετικό όνομα, π.χ.

τεστ_12.txt και test_13.txt

όπου το 12 και 13 είναι το id (autoincrement) του αρχείου στη βάση.

 

Επίσης μπορεί να θελήσεις να εξαφανίσεις τις επεκτάσεις για λόγους ασφαλείας, ώστε να μην μπορεί π.χ. κάποιος να ανεβάσει ένα .php αρχείο και μετά να το εκτελέσει. Έτσι μπορεί να τα ονομάσεις

τεστ_12_php.file και τεστ_13_php.file.

 

Στη συνέχεια καλό θα είναι να κάνεις μια συνάρτηση μετατροπής των unicode χαρακτήρων σε ascii, επειδή μερικοί servers μπορεί να μην υποστηρίζουν ελληνικά στο file system.

Έτσι μπορεί να τα ονομάσεις

test_12_php.file και test_13_php.file

 

Εν τέλει, όταν κάποιος θέλει να λάβει ένα αρχείο, θα χρησιμοποιείς την ίδια συνάρτηση μετατροπής του ονόματος για να βρεις το πραγματικό όνομα του αρχείου στον δίσκο (εσύ στη βάση θα κρατάς το πρωτότυπο - unicode). Και θα πρέπει να του φτιάχνεις τα headers ώστε να στέλνεται σαν attachment και πιθανώς αν θες να υποστηρίζεις και resuming.

 

Όλα αυτά τα ωραία μπορείς να τα βρεις έτοιμα αν κοιτάξεις π.χ. τον κώδικα κάποιου forum. Π.χ. στο smf βρίσκονται στο αρχείο attachments.php.

 

Αφού τα κάνεις αυτά, τότε θα είναι η ώρα να φτιάξεις το script που θες, το οποίο τότε θα είναι ιδιαίτερα απλό, αφού θα έχεις έτοιμη τη συνάρτηση ονομάτων κτλ. Απλά ένα select από τη βάση και ένα write στο δίσκο με το κατάλληλο όνομα.

Δημοσ.

Loipon... exoume kai leme... exv enan pinaka pou periexei to blob file, to megethos tou arxeiou, tin kataliksi, kai to onoma tou arxeiou...

 

otan thelo na kano download ena arxeio apo tin basi dedomenon tote ektelo (meros tou kodika) ton parakato kodika...

 

$query = "SELECT FileName, FileType, FileSize, File, Downloads FROM Subtitles WHERE idIpotitlou = '$id'";

$result = mysql_query($query) or die('Error, query failed');

list($name, $type, $size, $content, $downloads) = mysql_fetch_array($result);

header("Content-Disposition: attachment; filename=$name");

header("Content-length: $size");

header("Content-type: $type");

echo $content

 

afto to kalo meso enos link... kai mou bgazi apeuthias download to arxeio...

mipos mporo na kano kati me ta headers????

Δημοσ.
>
$q = $db->query("SELECT * FROM Subtitles");
while ($r = $q->fetch_assoc()){
   $f = fopen("/some/path/".$r['idIpotitlou']."_".$r['FileName'].$r['FileType'], 'w');
   fwrite($f, $r['File']);
}

Δημοσ.

loipon.. ekanan afto pou mou eipes... egine kati alla dimiourgithike ena aprosdokito problima...

 

eno mexri tora otan ekana download to arxeio edine to fisiologiko onoma sto arxeio tora dinei kati paraksena "n5fdh548gd6" kati tetoia tixaia....

 

stin arxi skeftika oti allaksa kati ston kodika kai ton ksana ekana etsi opos itan.... pali to idio....

 

kai tora oti arxeio pao na katebaso apo firefox... apo opoudipote mou kanei to idio... ti egine??????

Δημοσ.

Ο κώδικας γράφει τα blobs σε αρχεία στο fs σου, που είναι αυτό που ζήτησες στο πρώτο ποστ σου. Τον τρέχεια μία φορά για να κάνεις τη μετατροπή για όλα τα blobs σου. Το πως θα σερβίρεις μετά τα αρχεία είναι άλλο θέμα. Αν η στήλη "FileName" περιέχει όντως το όνομα του αρχείου και η "FileType" το extension του, τότε θα πρέπει να δημιουργούνται σωστά filenames και στο δίσκο στο path που δίνεις (πρόσθεσα και το id_ σε κάθε αρχείο για να σιγουρέψω οτι δε θα γίνει κάνα overwrite).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...