OVH Cloud OVH Cloud

connaître le type d'un fichier avant dl

19 réponses
Avatar
unbewusst.sein
quelques fois certains fichiers du net non pas d'extension, ça peut être
du html ou une image.
pour savoir si c'est du html je peux utiliser lynx :
$ lynx -head -dump url

par exemple :
zsh-% lynx -head -dump http://dico-cuisine.fr/news/orecchiette
HTTP/1.1 200 OK
Date: Tue, 08 Jun 2010 05:31:05 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.31
Expires: Mon, 07 Jun 2010 05:31:06 GMT
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: b=88.183.202.165_1275975066; path=/; expires=Mon,
04-Mar-2013 05:31:
06 GMT
Connection: close


j'ai essayé avec une image ça donne pas grand chose d'intéressant :
lynx -head -dump http://88.183.202.165/valid-xhtml1

me donne :

zsh-% lynx -head -dump http://88.183.202.165/valid-xhtml1
HTTP/1.1 200 OK
Date: Tue, 08 Jun 2010 05:45:18 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2
PHP/5.3.1
Last-Modified: Sun, 09 May 2010 08:35:02 GMT
ETag: "b15161-116-486252b1bd980"
Accept-Ranges: bytes
Content-Length: 278
Connection: close
Content-Type: text/plain
--------------^^^^^^^^^^^

bien sûr je souhaiterais que ça marche sur n'importe quel serveur.

euh le but de la manip étant d'ajouter la "bonne" extension à un fichier
qui n'en a pas.

--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)

9 réponses

1 2
Avatar
unbewusst.sein
SAM wrote:

Quelle est la punition à l'arrivée sur son ordinateur ?
Le mp3 sera ouvert par Paint ? Et le jpg par MediaPlayer ?




euh, d'expérience, sur Mac OS X SL, si le fichier n'a pas d'extension,
il ne s'ouvre pas de la même manière qu'une fichier avec extension non ?

soit le fichier "index", supposons que c'est du xhtml
si je double click dessus, il est pris pour du unix executable

un fichier css s'ouvrira avec TextEdit au lieu de TextMate s'il a
l'extension etc...

> quand je fais le ménage dans mes dossiers, c'est plus facile de se
> repérer. En utilisation online je m'en fiche.

Tu as des dossiers avec extensions ?
Tu classes tes fichiers par types ? et pas pas sujets ?



pas du tout, il m'arrive de regarder dans mes dossiers.

--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)
Avatar
unbewusst.sein
SAM wrote:


Le lien n'a pas d'obligation à stipuler l'extension
bien que le fichier lui en a tout de même une.

M'enfin c'est pas pire que lorsqu'on reçoit un fichier "truc.php"
au lieu de "machin.pdf" ... :-(



je trouve que c'est con, c'est tout. je préfère un fichier avec
extension, ça parle, c'est plus simple, ya pas besoin de regarder à
l'intérieur du fichier.

figures toi j'ai regardé les mime-types, kind, file_type et
type_identifier tjs sur Mac OS X SL, ben c'est le boxon :

---- mon script de test -----------------------------------------------
#! /opt/local/bin/ruby1.9
# encoding: utf-8

$: << "#{ENV['HOME']}/lib/ruby1.9"
require 'rubygems'
require 'hfsfile'
require 'mime_type'

Dir.glob("/Users/yt/Sites/mime-type-test/*").each do |path|
puts "# --> MimeType.get(#{path}) = #{MimeType.get(path)}"
puts "# --> MimeType.ext(#{path}) = #{MimeType.ext(path)}"
a = HFSFile.new(path)
puts "# --> HFSFile.new(#{path}).hash[:file_type] #{a.hash[:file_type]}"
puts "# --> HFSFile.new(#{path}).hash[:type_identifier] #{a.hash[:type_identifier]}"
puts "# --> HFSFile.new(#{path}).hash[:kind] = #{a.hash[:kind]}"
puts ""
end

# --> MimeType.get(/Users/yt/Sites/mime-type-test/468X60_v1-swf) application/x-shockwave-flash
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/468X60_v1-swf) = swf
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/468X60_v1-swf).hash[:file_typ
e] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/468X60_v1-swf).hash[:type_ide
ntifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/468X60_v1-swf).hash[:kind] Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/a-gif) = image/gif
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/a-gif) = gif
# --> HFSFile.new(/Users/yt/Sites/mime-type-test/a-gif).hash[:file_type]
= missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/a-gif).hash[:type_identifier]
= dyn.age8u
# --> HFSFile.new(/Users/yt/Sites/mime-type-test/a-gif).hash[:kind] Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/expansion_embed-js) text/plain
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/expansion_embed-js) txt
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/expansion_embed-js).hash[:fil
e_type] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/expansion_embed-js).hash[:typ
e_identifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/expansion_embed-js).hash[:kin
d] = Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/facile-html) text/html
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/facile-html) = html
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/facile-html).hash[:file_type]
= missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/facile-html).hash[:type_ident
ifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/facile-html).hash[:kind] Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/hoverbox-css) text/x-c
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/hoverbox-css) = css
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/hoverbox-css).hash[:file_type
] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/hoverbox-css).hash[:type_iden
tifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/hoverbox-css).hash[:kind] Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/index-xhtml) text/html
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/index-xhtml) = html
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/index-xhtml).hash[:file_type]
= missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/index-xhtml).hash[:type_ident
ifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/index-xhtml).hash[:kind] Fichier exécutable Unix

# -->
MimeType.get(/Users/yt/Sites/mime-type-test/le_grain_de_sel_du_chef-pdf)
= application/pdf
# -->
MimeType.ext(/Users/yt/Sites/mime-type-test/le_grain_de_sel_du_chef-pdf)
= pdf
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/le_grain_de_sel_du_chef-pdf).
hash[:file_type] = PDF
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/le_grain_de_sel_du_chef-pdf).
hash[:type_identifier] = com.adobe.pdf
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/le_grain_de_sel_du_chef-pdf).
hash[:kind] = Adobe PDF document

# -->
MimeType.get(/Users/yt/Sites/mime-type-test/Macaronis_en_paillason_t-jpg
) = image/jpeg
# -->
MimeType.ext(/Users/yt/Sites/mime-type-test/Macaronis_en_paillason_t-jpg
) = jpg
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/Macaronis_en_paillason_t-jpg)
.hash[:file_type] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/Macaronis_en_paillason_t-jpg)
.hash[:type_identifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/Macaronis_en_paillason_t-jpg)
.hash[:kind] = Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/valid-xhtml1-png) image/png
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/valid-xhtml1-png) png
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/valid-xhtml1-png).hash[:file_
type] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/valid-xhtml1-png).hash[:type_
identifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/valid-xhtml1-png).hash[:kind]
= Document

# --> MimeType.get(/Users/yt/Sites/mime-type-test/whatch-plist) application/xml
# --> MimeType.ext(/Users/yt/Sites/mime-type-test/whatch-plist) = xml
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/whatch-plist).hash[:file_type
] = missing_value
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/whatch-plist).hash[:type_iden
tifier] = dyn.age8u
# -->
HFSFile.new(/Users/yt/Sites/mime-type-test/whatch-plist).hash[:kind] Document
------------------------------------------------------------------------

c'est pas difficile, c'est dans le répertoire :
<http://88.183.202.165/mime-type-test/>

où j'ai remplacé le point qui sépare l'extension du nom par un "-",
histoire de m'y retrouver.

--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)
Avatar
Olivier Miakinen
Le 08/06/2010 13:43, Une Bévue a écrit :

Gnîîî ??? Avec une URL qui ne se termine pas par « pointquelquechose »,
ou sans type Mime dans l'entête Content-Type ? Quel est ton besoin réel
au fond ? Parce que du moment qu'une image JPEG est envoyée avec le
Content-Type "image/jpeg", peu importe que son nom apparent se termine
en .gif, en .doc ou en .mp3 !



quand je fais le ménage dans mes dossiers, c'est plus facile de se
repérer.



Ben oui, mais tu parlais de fichiers lus sur des serveurs qui, ai-je
supposé, n'étaient pas à toi. Sur des serveurs qui t'appartiennent, si
tu as mis une image JPEG qui n'est pas suffixée par .jpg, c'est un peu
de ta faute, non ?
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:

Ben oui, mais tu parlais de fichiers lus sur des serveurs qui, ai-je
supposé, n'étaient pas à toi. Sur des serveurs qui t'appartiennent, si
tu as mis une image JPEG qui n'est pas suffixée par .jpg, c'est un peu
de ta faute, non ?



ben chez moi je ne fais pas ça, évidemment, je l'ai juste fait ce matin
dans un dossier es-spécial pour tester justement les mime-types et
autres trucs - sans extension -.

je peux dire que sans extension, c'est le bordel, c'est tout.

--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)
Avatar
Olivier Miakinen
Le 08/06/2010 14:17, SAM a écrit :

Gnîîî ??? Avec une URL qui ne se termine pas par « pointquelquechose »,
ou sans type Mime dans l'entête Content-Type ? Quel est ton besoin réel
au fond ? Parce que du moment qu'une image JPEG est envoyée avec le
Content-Type "image/jpeg", peu importe que son nom apparent se termine
en .gif, en .doc ou en .mp3 !





Heu ... alors ça servirait à quoi de stipuler le type jpeg si finalement
c'est du mpeg ?



Je n'en sais rien, d'autant que ce n'est pas ce que j'ai dit. Je parlais
de stipuler (par Content-Type MIME) le type jpeg pour une
image jpeg, quelle que soit l'URL utilisée pour y accéder.

Quelle est la punition à l'arrivée sur son ordinateur ?
Le mp3 sera ouvert par Paint ? Et le jpg par MediaPlayer ?



Un fichier jpeg annoncé comme "image/jpeg" devrait être affiché comme
une image, même si l'URL est http://www.example.com/audio.mp3 ou plus
probablement http://www.example.com/machin_sans_extension !
Avatar
Olivier Miakinen
Le 08/06/2010 14:36, Une Bévue a écrit :

Quelle est la punition à l'arrivée sur son ordinateur ?
Le mp3 sera ouvert par Paint ? Et le jpg par MediaPlayer ?



euh, d'expérience, sur Mac OS X SL, si le fichier n'a pas d'extension,
il ne s'ouvre pas de la même manière qu'une fichier avec extension non ?



Je pensais que le Mac OS X se comportait comme un Unix. Sur Unix, ce qui
ailleurs se nomme « extension » n'a strictement aucune importance.
En ligne de commande tout au moins.

soit le fichier "index", supposons que c'est du xhtml
si je double click dessus, il est pris pour du unix executable

un fichier css s'ouvrira avec TextEdit au lieu de TextMate s'il a
l'extension etc...



Ah. :-(
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:


Je pensais que le Mac OS X se comportait comme un Unix. Sur Unix, ce qui
ailleurs se nomme « extension » n'a strictement aucune importance.
En ligne de commande tout au moins.



en cli avec open tu veux dire ben non si on ne spécifie pas
l'application ce sera l'application par défaut càd un peu n'importe
quoi.

ce sont les applications qui se déclarent être capable d'ouvrir ceci ou
cela (dans l'Info.plist, si elle est correctement écrite) ensuite ya
Apple qui y met sa couche et heureusement l'utilisateur peut changer la
valeur prise par défaut.

la pluspart de ces trus *aveugles* m'ennuient + qu'autre chose.

ça fait tjs des trucs dans ton dos.

par exemple ce matin pour tester un script de lecture du type mime, j'ai
fait au Finder un changement de nom disons à une image :

monImage.gif --> monImage-gif donc plus d'extension

mais bon ça ne marche pas comme ça, en cli j'ai pu vérifier que en fait
ma manip au Finder avait donné :
monImage.gif --> monImage-gif.gif

et il y a même des fichiers qui apparaissent sans extension et qui
pourtant en ont bien une, la seule manière de la voir c'est en cli par
un ls and co...

pas moyen, au Finder, de copier/coller le nom complet du fichier...
--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)
Avatar
SAM
Le 6/8/10 3:03 PM, Olivier Miakinen a écrit :
Le 08/06/2010 14:36, Une Bévue a écrit :
Quelle est la punition à l'arrivée sur son ordinateur ?
Le mp3 sera ouvert par Paint ? Et le jpg par MediaPlayer ?


euh, d'expérience, sur Mac OS X SL, si le fichier n'a pas d'extension,
il ne s'ouvre pas de la même manière qu'une fichier avec extension non ?



Je pensais que le Mac OS X se comportait comme un Unix. Sur Unix, ce qui
ailleurs se nomme « extension » n'a strictement aucune importance.



Le Mac a sa façon personnelle de traiter l'unix.
Je pense que le Mac a besoin de l'extension pour savoir avec quel soft
ouvrir le fichier.
D'antant il y avait le creator-type qu'on ne pouvait changer soi-même et
qui, lui, désignait l'appli à utiliser (et qques fois sa version).
Aujourd'hui on a tout loisir de déterminer soi-même que les jpg seront
ouverts avec Aperçu et que les gif le seront avec GC, les mp3 par
audacity, les mp4 par QT les mpg par VLC.

Ce qui n'empêche pas, à l'occasion de glisser un mp3 sur QT pour
l'ouvrir avec cette appli (au lieu d'Audacity décidé par ailleurs).

En ligne de commande tout au moins.



Je sais pas faire.

man open ...
-a application
specifies the application to use for opening the file
donc ... il ne saurait pas trouver tt seul ?

Mézoci :
EXAMPLES
"open '/Volumes/Macintosh HD/foo.txt'"
opens the document in the default application for its type
(as determined by LaunchServices).

Voyons voir :
open /Users/stef/Desktop/temp/DF/truc
... punition : blabla ColorSynch (comme + bas)
... les LaunchServices n'en démordent pas :-(

OK :
open -a /Applications/Preview.app/ /Users/stef/Desktop/temp/DF/truc
(en plus faut connaitre le nom US de l'appli :-( )

soit le fichier "index", supposons que c'est du xhtml
si je double click dessus, il est pris pour du unix executable

un fichier css s'ouvrira avec TextEdit au lieu de TextMate s'il a
l'extension etc...



Ah. :-(



Soit truc.jpg que je modifie en truc
double-clic
... alerte [ColorSynch ne peut ouvrir ce fichier]
va falloir droit-cliquer / ouvrir avec / choisir l'appli qu'on suppose
être la bonne
Proposées : tous mes navigateurs (tien? j'avais çui-là ?) et autres
applis semblant supporter les images mais pas Aperçu, pourtant le plus
commun. Bon, on finit par y arriver et trouver Aperçu, mais ça reste
assez curious.

--
sm
Avatar
SAM
Le 6/8/10 3:25 PM, Une Bévue a écrit :

ça fait tjs des trucs dans ton dos.

par exemple ce matin pour tester un script de lecture du type mime, j'ai
fait au Finder un changement de nom disons à une image :

monImage.gif --> monImage-gif donc plus d'extension

mais bon ça ne marche pas comme ça, en cli j'ai pu vérifier que en fait
ma manip au Finder avait donné :
monImage.gif --> monImage-gif.gif

et il y a même des fichiers qui apparaissent sans extension et qui
pourtant en ont bien une, la seule manière de la voir c'est en cli par
un ls and co...

pas moyen, au Finder, de copier/coller le nom complet du fichier...




??? c'est sous Snow Leopard ce genre de truc, non ?
Parce qu'en Tiger, je n'ai pas ce que tu dis.

Ou alors j'ai dû faire un réglage un peu à l'insu de moi-même ?

Finder / Préférences / Avancé
[X] Afficher les extensions
[X] Avertir avant de vider la corbeille

--
sm
1 2