JavaScriptでサイズ変更された画像をサーバーにアップロードしようとしていました。
私はサイズ変更されたイメージでファイル入力を設定しようとしました。
その後私は知り合いになりましたwe cannot change file input unless user select file
これで、サイズ変更されたイメージをローカルディスクに保存して、ファイルを再アタッチできるようにしています。
私の質問は、JavaScriptで行われたサイズ変更されたイメージをローカルディスクに保存する方法です。JavaScriptを使用して画像サイズを変更してディスクに保存する
-1
A
答えて
2
最後に私はそれを自分で解決し、将来の読者のために私のソリューションをここに追加します。
$(document).on("change", ":file", function(event)
{
if(this.files && this.files[0])
{
var file_input=$(this);
var file=this.files[0];
var file_type=file.type;
if(file_type && file_type.substr(0,5)=="image")
{
var img = document.createElement("img");
var reader = new FileReader();
reader.onload = function (e)
{
img.src = e.target.result;
img.onload = function (imageEvent)
{
var MAX_WIDTH = 800;
var MAX_HEIGHT = 600;
var width = img.naturalWidth;
var height = img.naturalHeight;
//resize the image if it higher than MAX_WIDTH or MAX_HEIGHT
if((width>MAX_WIDTH)||(height>MAX_HEIGHT))
{
if((width/height)>(MAX_WIDTH/MAX_HEIGHT))
{
height *= MAX_WIDTH/width;
width = MAX_WIDTH;
}
else
{
width *= MAX_HEIGHT/height;
height = MAX_HEIGHT;
}
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, width, height);
//following two lines saves the image
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href=image; //
//file_input.val(null);//if you want reset file input
//file_input.trigger('click'); //if you want to reopen file input
}
};
};
reader.readAsDataURL(file);
}
}
else
{
console.log('no file attached');
}
});
この2行は、ファイル
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href=image;
残念ながら、それは保存するためには良いのファイル名を使用しないで保存します。だから私はそれらの2つの行を置き換える代わりの方法を使用しました。
FileSaver.js
をhereからダウンロードし、それをあなたのスクリプトに含めます。 それがBASE64画像列に変換され、サイズ変更に続いて[croppie(https://foliotek.github.io/Croppie/)を使用している場合今では、これらのコード
canvas.toBlob(function(blob)
{
saveAs(blob, 'image.png');
//saveAs(blob, file.name);//or this one
});
関連する問題
- 1. javascriptを使用してユーザーのディスクに画像を保存
- 2. QtWebEngineを使用してディスクに画像を保存する
- 3. 画像のサイズを変更して出力を保存する
- 4. CodeIgniterを使用して2つの画像をアップロード、サイズ変更、保存する
- 5. クライアント側の画像のサイズを変更して保存する
- 6. HTML画像のサイズを変更して保存するタグ
- 7. キャンバス - 画像のサイズを変更して変数に保存する
- 8. web.pyで画像をアップロードしてディスクに保存する方法
- 9. JavaScript/jQueryを使用して画像のサイズを変更してください
- 10. OpenCv Pythonを使用してFull HDサイズで画像を保存
- 11. onmouseoverを使用してwp_get_attachment_imageを使用して画像サイズを変更する
- 12. カメラから画像をサイズ変更してカードに保存する
- 13. drawInRectを使用して画像のサイズを変更するメモリ
- 14. OperaブラウザでJavascriptを使用して画像のサイズを変更する
- 15. サイズを変更しても画像をフルサイズに保つ
- 16. C#Winforms画像のサイズを変更して保存する方法
- 17. ピカソを使用して画像をダウンロードして保存する
- 18. Javascriptを使用してウェブページの画像を変更する
- 19. ImageJを使用して画像のサイズを変更してトリミングする
- 20. PHPを使用したURLから画像をディスクに保存する
- 21. codeigniterでgd2を使用して画像のサイズを変更
- 22. libpngを使用して画像のサイズを変更(双三方)
- 23. WriteableBitmapを使用してSilverlight 3で画像のサイズを変更
- 24. ImageMagickを使用してバッチスクリプトで画像のサイズを変更
- 25. JAVAを使用して画像をアップロードしてフォルダに保存
- 26. 画像のサイズを変更してアップロードする画像アップロードウィジェット
- 27. は、画像のサイズを変更して
- 28. 範囲コントロールを使用して画像のサイズを変更しながら画像を拡大して保存する
- 29. Laravel Cant保存画像を使用して保存
- 30. ギャラリー画像をサイズ変更した画像を変更する
とそれら2つの行を置き換えることができます。この文字列をサーバに送り、phpで 'base64_decode($ base64string)'と 'file_put_contents($ file_path、$ base64stringdecoded);を実行して希望のパスにファイルを保存します –
@ Deep3015あなたのリンクは役に立ちました。実際に私は完全なウェブサイトのコードを今変更することはできません。ですから、サイズ変更されたファイルの入力を修正しようとしています。私は私の質問を変えた。もう一度私を助けることができるかもしれない。 –
私は方法がないと思う。ユーザーに画像の再アップロードやコードの変更を依頼してください。 –