- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果您要自定义放置区,我不明白 URL
和 paramName
应该是什么?
Dropzone.autoDiscover = false
$('#new_picture').dropzone
url: '/projects'
maxFilesize: 1
paramName: 'project_images[photos]'
addRemoveLinks: true
我很确定我的 paramName 和 url 是错误的。
我有这样的嵌套回形针:
<%= simple_form_for @project, html: { multipart: true } do |f| %>
<div class='dropzone' id="new_picture">
<div class="fallback">
<%= file_field_tag "photos[]", multiple: true %>
</div>
</div>
<% end %>
class ProjectImage < ActiveRecord::Base
belongs_to :project
has_attached_file :photo,
:styles => {
:large => "800x800>",
:thumb => "150x150#" },
:default_url => "/images/:style/missing.png"
validates_attachment_content_type :photo, content_type: /\Aimage\/.*\Z/
attachment :file
end
def project_params
params.require(:project).permit(
:user_id,
project_images_attributes: [:id, :project_id, :photo, :_destroy])
end
def create
@project = Project.new(project_params)
respond_to do |format|
if @project.save
if params[:photos]
params[:photos].each { |image|
@project.project_images.create(photo: image)
}
end
end
end
end
最佳答案
实际上 url
是在您的 form
没有定义操作时指定的。我像这样使用 dropzone.js
:
= form_tag new_drag_drop_photo_path, method: :post, class: "dropzone form-horizontal", id: "media-dropzone", :authenticity_token => true do
= file_field_tag "photo", multiple: true
现在当照片被拖放到我的 dropzone 字段中时,它将被发送到这样定义的这个 Action :
Started POST "/new_drag_drop_photo" for 127.0.0.1 at 2015-07-24 10:55:04 +0530
Processing by PhotosController#new_drag_drop_photo as JSON
Parameters: {"utf8"=>"✓", "authenticity_token"=>"rmp7BwrEoa7iCesuPifQm60YwAemDCfq6t7soQ==", "file"=>#<ActionDispatch::Http::UploadedFile:0x007f6b78ab5190 @tempfile=#<Tempfile:/tmp/RackMultipart20150724-4280-1obqg7k.jpg>, @original_filename="bridal-dresses-4.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"bridal-dresses-4.jpg\"\r\nContent-Type: image/jpeg\r\n">}
现在您没有使用 form
,而是使用 div
,这就是为什么您需要定义 url
的原因拖动时将发送照片。这将是一个 json
请求,dropzone
将期望来自服务器的 json
响应。所以你需要一个 Controller 的 Action ,就像我指定的那样:
def new_drag_drop_photo
@photo = Photo.new(image: params[:file], name: params[:file].original_filename.split('.')[0])
if @photo.save!
respond_to do |format|
format.json{ render :json => @photo }
end
else
render json: { error: @photo.errors.full_messages.join(',')}, :status => 400
end
end
现在我从文件本身获取文件名
。当您像这样在 dropzone 配置中提供它时:paramName: 'project_images[photos]'
然后它将在文件发送到 Controller 的操作时传递此名称。因为你在这里使用了嵌套形式,所以我也使用了它,但我使用了一些 jquery 来向它添加 photo_ids。所以我要做的是先上传照片并保存在数据库中,然后在嵌套表单中分配 id。
希望这对您有所帮助。
关于ruby-on-rails - Dropzonejs 和 Paperclip、url 和 paramName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31601126/
我正在构建一个 AngularJs 应用程序,我正在使用 DropzoneJs 的 dropzone。我需要使用成功和错误回调,因为我必须访问服务器响应。我遇到一个问题,如果我使用回调,preview
我正在对 dropzonejs 图像 uploader 进行一些修改。我希望最多允许上传 12 张图片。我看到了 maxFiles 的配置,但将其设置为 12 后,它仍然允许添加文件并生成缩略图预览。
我在显示缩略图上的“删除”按钮时遇到问题。 var myDropzone = new Dropzone("#my-awesome-dropzone"); myDropzone.opti
我正在使用dropzonejs用于简单的文件上传。不过,我目前遇到了一些问题。 我不知道如何限制上传的文件类型。我的 PHP 后端有文件验证,但文件似乎已上传(它们有一个复选标记),即使它们没有通过这
我已设置 dropzone 并使用我的 AWS S3 帐户。不过,我希望能够在将文件发送到 S3 之前对其进行重命名(例如附加时间戳),以便与现有文件同名上传的文件不会被覆盖。我尝试在发送事件中捕获此
我正在使用 dropzonejs 上传和删除服务器上的多个图像。上传多张图片工作正常但一次删除一张图片给我带来了问题。单击删除链接时,所有与图像关联的 ajax 函数都会同时触发,这会导致删除所有文件
我尝试通过 dropzone 搜索让我的上传功能与我自己的自定义表单一起使用。不幸的是,stackoverflow 和其他方面的其他线程对我帮助不大。所以也许任何人都可以了解真正的基础知识并帮助我理解
我正在使用 Dropzonejs 来处理文件上传。我有一个很大的表格,文件只是其中的一部分。我已将 dropzone 附加到表单内的 div,但文件附加到正文的末尾。有没有办法将文件放入表单中,以便它
有没有什么办法可以不使用Form而使用Dropzone js。我想像下面这样使用。但是这样就不会显示图像预览。 最佳答案 在 docs
我正在使用 Dropzonejs 上传文件以在我的模块中使用。它的工作方式是编辑项目,将文件拖到放置区,放置区隐藏,然后您会看到图像的预览。该预览是自制的,并且有一个删除按钮来删除图像并取消数据库中的
我正在制作一个上传脚本,但我坚持从“addfile”事件的“file”获取dataURL,这是我的代码: $(function() { var dropzone = new Dropzone(
问题 我正在使用 dropzone 处理多个图像上传。我希望它生成 280x280px 的缩略图。尽管我尽了最大的努力,它还是会不断生成 100x100 像素的缩略图。 代码 这是我的代码: D
我正在使用 dropzonejs 删除文件,然后上传到服务器。我想实现当视频文件被删除时,它应该能够使用html5视频播放。这是我尝试过的地方, this.on("addedfile"
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 5 年前。 Improve this ques
我在我的网站上使用 dropzone js,我想访问插件使用的拖放照片源。这就是我的意思:在 added file 事件监听器中,我可以轻松访问已删除文件的名称,例如 dropzoneForm.on(
我试图使用选项 maxFiles: 1; 将用户可以选择的文件数量限制为一个;然而,这也阻止用户上传第二个、第三个等文件,这正是我想要的。我希望只选择一个文件并允许后续上传。这可能吗? 这是我的代码:
我使用插件dropzonejs.com 。现在我在html文档中编写这段代码 link('task', 'upload'); ?>" id="pinupload" class="dropzone" s
我在表单中使用 dropzoneJS。除了图像之外,表单还记录用户输入。一切正常。用户输入将进入我的数据库,图像将上传到定义的目录中。现在我想将拖放图像字段设置为可选字段,用户可以选择上传图像或将其留
我正在使用 dropzone js 将文件上传到服务器。我的服务器位于 Tornado 中,但 dropzonejs 在 header 中发送了一个选项请求,尽管我将其设置为执行方法 Post。 问题
我有一个上传视频的表格,视频的持续时间/长度很重要。 在我用 PHP 上传文件后,我用 FFMpeg 检查视频文件大小的持续时间。 我用 PHP 计算持续时间,需要通过 PHP 以某种方式发送持续时间
我是一名优秀的程序员,十分优秀!