J'ai été aux prises avec ce pour un couple de jours et en espérant que quelqu'un peut vous aider. Il y a peut être quelque chose d'évident qui me manque!
Je suis à l'aide de Sanctuaire plugin pour les Rails de téléchargement de fichiers PDF et de générer une miniature de la première page. Le PDF est en cours de chargement dans l'espace de stockage et de la vignette est également se créé et se triées dans le même emplacement. Cependant, je ne suis pas capable d'afficher la vignette dans la vue.
Initialiseur:
require "shrine"
require "shrine/storage/file_system"
#require "shrine/storage/memory"
Shrine.storages = {
cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"),
store: Shrine::Storage::FileSystem.new("public", prefix: "uploads/store")
}
Shrine.plugin :activerecord # loads Active Record integration
Shrine.plugin :cached_attachment_data # enables retaining cached file across form redisplays
Shrine.plugin :restore_cached_data # extracts metadata for assigned cached files
Shrine.plugin :determine_mime_type
Shrine.plugin :validation_helpers
Shrine.plugin :validation
Shrine.plugin :derivatives
#Shrine.plugin :model, cache: false
Uploader:
require "image_processing/mini_magick"
class FileUploader < Shrine
include ImageProcessing::MiniMagick
plugin :processing # allows hooking into promoting
plugin :versions # enable Shrine to handle a hash of files
plugin :derivatives
plugin :default_url
# plugin :delete_raw # delete processed files after uploading
Attacher.validate do
validate_max_size 5*1024*1024, message: "is too large (max is 5 MB)"
validate_mime_type %w[application/pdf]
end
Attacher.derivatives do |original|
magick = ImageProcessing::MiniMagick.source(original).loader(page:0).convert("jpeg")
{
thumb: magick.resize_to_limit!(200, 200)
}
end
end
Test De La Vue:
<p id="notice"><%= notice %></p>
<p>
<strong>Number:</strong>
<%= @issue.number %>
</p>
<p>
<strong>Title:</strong>
<%= @issue.title %>
</p>
<p>
<strong>Data:</strong>
<%= @issue.file_data %>
</p>
<p>
<strong>Issue Preview</strong>
<embed src="<%= @issue.file_url %>" width="80" height="160" />
</p>
<p>
<strong>Issue Thumbnail:</strong>
<%= image_tag @issue.file_url(:thumb) if @issue.file %>
</p>
<p>
<strong>Issue:</strong>
<%= image_tag @issue.file_url if @issue.file %>
</p>
<%= link_to 'Edit', edit_issue_path(@issue) %> |
<%= link_to 'Back', issues_path %>
Aussi, quand je regarde les données stockées dans la file_data champ, je ne vois aucune information ajoutée pour la miniature.
Fichier de Données: {"id":"fccd20a9323aa5b63fd912f4ca833ebb.pdf","storage":"store","metadata":{"filename":"pdf_sample.pdf","size":351987,"mime_type":"application/pdf"}}