困っていることと実現したいこと
active storageを利用して写真をアップロードしています。
macの写真フォルダ(iCloud)から写真を選択してアップロードするとエラーが起きてしまいます。
そのため、現時点のエラー対処法として一旦icloud上にある写真をローカルに落としてからアップしているのですが、それをしなくてもアップロードできるようにする方法を知りたい。
slim
1 2 = form_with scope: :user, url: user_path, model: @user, method: :patch, local: true do |f| 3 .form-group.text-center 4 img id="img1" class="default-image hidden" 5 .form-row.my-2 6 .col-7 7 label.btn.btn-block.text-white 8 .div +写真を選択 9 = f.file_field :image, style: "display:none;", id: "myfile" 10 .col-5 11 = f.submit 'send', class: "btn btn-block bg-danger text-white" 12 13 14script src="http://code.jquery.com/jquery-3.2.1.min.js" 15javascript: 16 $(function(){ 17 $('#myfile').change(function(e){ 18 //ファイルオブジェクトを取得する 19 var file = e.target.files[0]; 20 var reader = new FileReader(); 21 //画像でない場合は処理終了 22 if(file.type.indexOf("image") < 0){ 23 alert("画像ファイルを指定してください。"); 24 return false; 25 } 26 //delete default image 27 let thumbnail = document.getElementById("thumbnail"); 28 if (thumbnail){ 29 thumbnail.classList.add("hidden"); 30 } 31 let default_img = document.getElementById("default-image"); 32 if (default_img){ 33 default_img.classList.add("hidden"); 34 } 35 document.getElementById("img1").classList.remove("hidden"); 36 //アップロードした画像を設定する 37 reader.onload = (function(file){ 38 return function(e){ 39 $("#img1").attr("src", e.target.result); 40 $("#img1").attr("title", file.name); 41 }; 42 })(file); 43 reader.readAsDataURL(file); 44 }); 45 });
ruby
1Rails.application.routes.draw do 2 3 devise_for :users, :controllers => { 4 :registrations => 'users/registrations' 5 } 6 7 resources :users, only: [:update, :edit] do 8 get :thumbnail, on: :member 9 end 10 11 devise_for :admins, skip: :all 12 devise_scope :admin do 13 get 'admins/sign_in' => 'admins/sessions#new' 14 post 'admins/sign_in' => 'admins/sessions#create' 15 delete 'admins/sign_out' => 'admins/sessions#destroy' 16 end 17end
追記
ファイル名が日本語名でも同じようなエラーが起きてしまいます。
回答1件
あなたの回答
tips
プレビュー