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)
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 (http://es.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions)
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
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?
Fui a otros ficheros de errores y encontré el código que intenta ejecutar:
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)
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
Sé que no es la solución más sofisticada porque, bueno, supongo que lo ideal sería que identificara el archivo...
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...