Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αυτόματη αναγνώριση ContentType

Îåêßíçóå áðü ôï ìÝëïò Costas D. Τελευταία δημοσίευση από το μέλος Costas D στις 20-02-2008, 18:43. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-02-2008, 11:19 40353

    Αυτόματη αναγνώριση ContentType

    Παιδιά γεια σας,

    φτιάχνω μια web εφαρμογή και αναζητώ έναν τρόπο να αναγνωρίζω αυτόματα τον τύπο ενός αρχείου, ανεξάρτητα από το extension του, ώστε έπειτα να ορίσω το Response.ContentType = "xxxxxxxx/xxx" κατάλληλα.

    Δεν μπόρεσα να βρω τίποτα σχετικό στο google και φαντάζομαι ότι από τη .net δεν υπάρχει κάτι έτοιμo (π.χ. από την System.IO.FileInfo).

    Έχετε να προτείνετε κάτι;
  •  20-02-2008, 15:12 40357 σε απάντηση της 40353

    Απ: Αυτόματη αναγνώριση ContentType

    .. κάθε αρχείο έχει κάποια bytes στην αρχή του, τα οποία υποδηλώνουν τον τύπο του αρχείου. Αυτά αν δεν κάνω λάθος είναι στάνταρ πράγματα, αλλά δυστυχώς δε θυμάμαι αυτή τη στιγμή κάποιο link να γράψω, πάνε χρόνια που χρησιμοποίησα αυτό το κόλπο. Κάνε κάποιο σχετικό Google search κι αν εξακολουθείς να μη βρίσκεις άκρη, επανερχόμαστε.

    Angel
    O:]
  •  20-02-2008, 16:09 40360 σε απάντηση της 40357

    Απ: Αυτόματη αναγνώριση ContentType

    Αυτό όμως δεν ισχύει για όλα τα αρχεία (πχ text), και αν δεν κάνω λάθος, δεν υπάρχει κάποιο standard σχετικά με το μέγεθος των descriptors, στην περίπτωση που αυτοί υπάρχουν.

    Που σημαίνει ότι μπορεί το JPEG και το BMP και το ZIP να έχουν headers οι οποίοι περιγράφουν τι είναι, αλλά θα πρέπει να ελέγχεις για τον κάθε ένα με ξεχωριστή υλοποίηση.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  20-02-2008, 18:43 40362 σε απάντηση της 40357

    Απ: Αυτόματη αναγνώριση ContentType

    anjelinio:
    .. κάθε αρχείο έχει κάποια bytes στην αρχή του, τα οποία υποδηλώνουν τον τύπο του αρχείου. Αυτά αν δεν κάνω λάθος είναι στάνταρ πράγματα, αλλά δυστυχώς δε θυμάμαι αυτή τη στιγμή κάποιο link να γράψω, πάνε χρόνια που χρησιμοποίησα αυτό το κόλπο. Κάνε κάποιο σχετικό Google search κι αν εξακολουθείς να μη βρίσκεις άκρη, επανερχόμαστε.


    Νομίζω ότι το structure κάθε κεφαλίδας αρχείου, ακόμα και του ίδιου τύπου, μπορεί να διαφέρει ανάλογα με το πρόγραμμα που έχει φτιαχτεί.
    Σίγουρα υπάρχουν προγράμματα που καταφέρνουν να κάνουν extract τέτοια πληροφορία αλλά πρέπει να είναι αρκετά περίπλοκη υπόθεση και μάλλον μεγαλύτερη από τις 2-3 γραμμές που θα'θελα να το κάνω αν υπήρχε ήδη κάτι από τη .net.

    Αν σου βρίσκεται βέβαια κάποια καλή λύση, feel free :)

    Τελικά έλυσα το πρόβλημά μου ορίζοντας το ContentType ως "application/octet-stream" που είναι ένας γενικός τύπος ώστε να αναγκάζει τον browser να ρωτάει για open ή save as.
    Προηγουμένως, χωρίς ContentType, είτε έπαιζε όπως παραπάνω (ανάλογα τον browser), είτε άνοιγε δεύτερη σελίδα με τα contents του αρχείου, είτε κατέβαζε κατευθείαν το αρχείο προσθέτοντας επιπλέον extension ".html".
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems