¿Qué significa este error?

Iniciado por Cergath, 16 Abril 2015, 19:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Cergath

Estoy recibiendo un error más largo que este, pero dudo que lo demás sea primordial justo ahora:

unknown mime type unknown/unknown

¿Cómo lo soluciono si no sé qué formato he de solucionar?
Es un fichero .imscc para importar en Canvas (instructure)

engel lex

no se que lenguaje estás usando ni que estás haciendo mal... pero aquí información sobre los mimetypes

http://es.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#2
Deberia(mos) eliminar todas las preguntas que no indiquen el lenguaje de programación que se está usando.

Esto me mosquea aun más cuando son usuarios veteranos.

Saludos








Cergath

Cita de: Eleкtro en 16 Abril 2015, 20:16 PM
Esto me mosquea aun más cuando son usuarios veteranos.

No soy usuario veterano, y ciertamente no dije el lenguaje de programación porque no creí que fuese importante dado el error tan genérico y el hecho de que no hay output más que ese... Como mencioné en el post original, trato de importar un paquete de cursos a Canvas (de Instructure), que está hecho en Ruby, desafortunadamente el output no muestra más, sino solo ese error... Muestra algunas líneas relacionadas a ficheros que fallan, pero nada más, como que intentó correr "/var/canvas/lib/canvas/migration/archive.rb ..." etcétera

Será que mirando lo que hacen esos archivos de pronto doy con lo que trata de hacer?

Cergath

#4
Fui a otros ficheros de errores y encontré el código que intenta ejecutar:

Código (ruby) [Seleccionar]
each_entry(archive_filename) do |entry, index|
     if unsafe_entry?(entry)
       add_warning(warnings, entry, :unsafe)
       next
     end

     if block
       block.call(entry, index)
     else
       raise FileLimitExceeded if files_left <= 0
       begin
         f_path = File.join(dest_folder, entry.name)
         entry.extract(f_path, false, bytes_left) do |size|
           bytes_left -= size
           raise SizeLimitExceeded if bytes_left < 0
         end

         files_left -= 1
       rescue DestinationFileExists
         add_warning(warnings, entry, :already_exists)
       rescue Zip::CompressionMethodError
         add_warning(warnings, entry, :unknown_compression_method)
       end
     end
   end
   warnings
 end

 def self.each_entry(archive_filename)
   raise ArgumentError, "no block given" unless block_given?

   file = File.open(archive_filename)
   mime_type = File.mime_type?(file)

   if mime_type == 'application/x-gzip'
     file = Zlib::GzipReader.new(file)
     mime_type = 'application/x-tar' # it may not actually be a tar though, so rescue if there's a problem
   end

   if mime_type == 'application/zip'
     Zip::File.open(file) do |zipfile|
       zipfile.entries.each_with_index do |zip_entry, index|
         yield(Entry.new(zip_entry), index)
       end
     end
   elsif mime_type == 'application/x-tar'
     index = 0
     begin
       Gem::Package::TarReader.new(file).each do |tar_entry|
         next if tar_entry.header.typeflag == 'x'
         yield(Entry.new(tar_entry), index)
         index += 1
       end
     rescue Gem::Package::TarInvalidError
       raise UnknownArchiveType, "invalid tar"
     end
   else
     raise UnknownArchiveType, "unknown mime type #{mime_type}"
   end
 end


Ya intenté cambiar el formato de .imscc a .zip (que es que .imscc por defecto debería funcionar), y aún así no funciona :( ... ¿alguna forma de configurar "manualmente" el mime type?... ¿se puede? :(  :-( :-(

(está funcionando en Ubuntu 12.04)

engel lex

el mimetype viene dado por el servidor que normalmente toma en cuenta la extención del fichero para escogerlo... puedes hacerle un bypass al programa y listo, ahí tienes el codigo, ahora tienes que saber que hacer con el... si es necesario que sea así necesitarías explicar el servidor
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Cergath

#6
Sé que no es la solución más sofisticada porque, bueno, supongo que lo ideal sería que identificara el archivo...

Código (ruby) [Seleccionar]
if mime_type == 'unknown/unknown'
     Zip::File.open(file) do |zipfile|
       zipfile.entries.each_with_index do |zip_entry, index|
         yield(Entry.new(zip_entry), index)
       end
     end


He puesto eso y me ha funcionado  :o , la verdad me sorprende que haya sido tan... fácil...