質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

790閲覧

プロフィール画像をアップロードする画面を作りたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/09/15 10:33

編集2021/09/16 05:13

TwitterやInstagramのように、アカウントを作成する際のプロフィール画像をアップロードの

画像が表示される円をタップ⇒ファイルから画像を選択(一時アップロード?)⇒1:1にトリミング⇒円で表示されていることを確認⇒アップロード

というのを作りたいと思っています。

使用するもの
jQuery-File-Upload-10.31.0
Croppie
(一応PHPも?)

現在
htmlはこのような感じです。

profile.html

html

1<meta http-equiv="X-UA-Compatible"content="IE=edge"/> 2<meta http-equiv="content-type"content="text/html; charset=UTF-8"/> 3<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"name="viewport"/> 4 5<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 6<script src="//blueimp.github.io/jQuery-File-Upload/js/vendor/jquery.ui.widget.js"></script> 7<script src="//blueimp.github.io/jQuery-File-Upload/js/jquery.iframe-transport.js"></script> 8<script src="//blueimp.github.io/jQuery-File-Upload/js/jquery.fileupload.js"></script> 9<script src="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script> 10<script src="//blueimp.github.io/jQuery-File-Upload/js/jquery.fileupload-process.js"></script> 11<script src="//blueimp.github.io/jQuery-File-Upload/js/jquery.fileupload-image.js"></script> 12<script src="croppie.js"></script> 13<link rel="stylesheet" href="croppie.css"> 14 15<script> 16 $(function() { 17 var url = "..."; // ※ファイルをアップロードする URL 18 $('#fileupload').fileupload({ 19 url: url, 20 dataType: 'json', 21 autoUpload: true, // ※ファイルを選択したら、即、アップロード 22 acceptFileTypes: /(.|/)(gif|jpe?g|png)$/i, 23 maxFileSize: 5000000, // 5 MB 24 // Enable image resizing, except for Android and Opera, 25 // which actually support image resizing, but fail to 26 // send Blob objects via XHR requests: 27 disableImageResize: /Android(?!.*Chrome)|Opera/ 28 .test(window.navigator.userAgent), 29 previewMaxWidth: 100, 30 previewMaxHeight: 100, 31 previewCrop: true 32 }).on('fileuploadadd', function (e, data) { 33 data.context = $('<div/>').appendTo('#files'); 34 $.each(data.files, function (index, file) { 35 var node = $('<p/>') 36 .append($('<span/>').text(file.name)); 37 node.data(data) 38 node.appendTo(data.context); 39 }); 40 }).on('fileuploadprocessalways', function (e, data) { 41 var index = data.index, 42 file = data.files[index], 43 node = $(data.context.children()[index]); 44 if (file.preview) { 45 node 46 .prepend('<br>') 47 .prepend(file.preview); 48 } 49 }); 50 }); 51 </script> 52```Croppie.html 53```html 54<div class="demo"></div> 55<script> 56$('.demo').croppie({ 57 url: '', 58}); 59</script> 60<!-- or even simpler --> 61<img class="my-image" src="" /> 62<script> 63$('.my-image').croppie(); 64</script>

コピペしたものですがうまくいかず、私自身JavaScriptは初心者なので、足りないところや修正したほうが良いところがあれば教えていただきたいです。

追記
上記のように使用しているのはjQuery-File-Upload-10.31.0ですが、他にもjQuery関連のファイルもダウンロードしたほうが良いのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/09/15 11:17

「ファイルをアップロードする URL」ではどんな処理をしてるんでしょう。 この手のものは「コピペしとけば動く」ようなものではないことのほうが多いです。 個々の機能をきちんと理解して組み合わせることになるので。
退会済みユーザー

退会済みユーザー

2021/09/15 14:45

URL先にアップロードされるのか、URL先の画像がアップロードされるのか、正直分かりません。 似たような構文で、いくつかのサイトではURL先(別のサイト)の画像が表示されているようでした。
退会済みユーザー

退会済みユーザー

2021/09/15 14:48

ただ試していないので、URLのところをCorrpie.htmlに設定することで、もしかしたらトリミングのページにアップロードされるのかもしれません。
退会済みユーザー

退会済みユーザー

2021/09/16 09:41

個人的にはコピペだけで内容を理解せずに動かそうとしている人なら、アドバイスしたくないのですが、回答する気もないのにそれを言わずに無責任なコメントをする方がいるため、質問した方が期待してしまうのも無理ありません。 まずは「うまく行かない」ではなく、具体的に何を見て「うまく行かない」と思ったのか、お手数ですがエラーメッセージなどそう思った根拠を提示して頂けないでしょうか?
退会済みユーザー

退会済みユーザー

2021/09/18 08:12

今自分なりに試行錯誤しているので、現状を説明させていただきます。 https://foliotek.github.io/Croppie/ こちらのサイトの下から二番目の『Upload Example (with exif orientation compatability)』を参考に、 少し長くなりますが下記のようにしました。 HTML <script> $(function() { var url = "http://localhost/profile_image.html"; // ※ファイルをアップロードする URL $('#fileupload').fileupload({ url: url, dataType: 'json', autoUpload: true, // ※ファイルを選択したら、即、アップロード acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, maxFileSize: 5000000, // 5 MB // Enable image resizing, except for Android and Opera, // which actually support image resizing, but fail to // send Blob objects via XHR requests: disableImageResize: /Android(?!.*Chrome)|Opera/ .test(window.navigator.userAgent), previewMaxWidth: 100, previewMaxHeight: 100, previewCrop: true }).on('fileuploadadd', function (e, data) { data.context = $('<div/>').appendTo('#files'); $.each(data.files, function (index, file) { var node = $('<p/>') .append($('<span/>').text(file.name)); node.data(data) node.appendTo(data.context); }); }).on('fileuploadprocessalways', function (e, data) { var index = data.index, file = data.files[index], node = $(data.context.children()[index]); if (file.preview) { node .prepend('<br>') .prepend(file.preview); } }); }); $uploadCrop = $('#upload-proimage').croppie({ enableExif: true, viewport: { width: 200, height: 200, type: 'square' }, boundary: { width: 300, height: 300 } }); </script> 実際にページを開いてみましたが、ファイル選択ボタンが表示されており、画像を選択すると画像中央から1:1になった画像が表示されてるだけです。トリミングしておりません。 ちなみにexif.jsもまだダウンロード?しておりません。
m.ts10806

2021/09/18 08:55

質問は編集できますので適宜質問本文を更新してください。
退会済みユーザー

退会済みユーザー

2021/09/18 09:52

@m.ts10806様 無責任なコメントを控えてもらえますか? @JackRay様 まずやりたいことは、 「ファイルのアップロードの際に、選択された長方形の画像ファイルからユーザーが選択した任意の部分を円形で切り出した画像をアップロードしたい」 ということですか? その手段として、 「jQuery + jQuery-File-Upload + Croppyを使用しクライアントサイドで切り抜いた画像を作成してアップロード」 を考えているということですか? そして、現状では、 「そこら辺から持ってきたサンプルコードを貼り合わせたけど、動かない」 ということですか?
退会済みユーザー

退会済みユーザー

2021/09/19 06:33

まとめるとその通りです。 無知で申し訳ないのですが、jQueryとjQuery-File-Uploadはやはり別物なのでしょう か?
m.ts10806

2021/09/19 06:42

dameoさん 指摘に対しては質問本文を更新するのが基本です。 無責任だという決めつけは非常に迷惑です。 質問内容が他者が応えられるほど充実してないのでこちらで追記依頼をしています。
m.ts10806

2021/09/19 06:46

それに「追記修正依頼をしたからと絶対に回答しなければならない」ルールはないです。 本件はカテゴリとして応えられない内容ではないですが、質問内容の不足は誰もが感じるところ(だからあなたも指摘してるんでしょ?) 多くは指摘しても対応しない反応すらしない、暴言すらはく人がいる。それで「回答しない」となって無責任と解釈するのは横暴です。
退会済みユーザー

退会済みユーザー

2021/09/19 06:52

なるほど・・・だとすると、まずは (1)phpでファイルのアップロードをできるようになりましょう。 それが出来たら、 (2)HTMLとJavaScriptで、画像を表示しその画像を切り替えられるようになりましょう。 その次に (3)jQueryで切り替えられるようになりましょう。 そこまで出来たら、 (4)jQueryで画像ファイルの画像を表示しつつその画像ファイルをアップロードできるようになりましょう。 それが出来たら、 (5)Croppyを使って画像ファイルの画像を加工してその加工した画像をアップロードしてみましょう。 なお「できるようになる」はコピペではなく内容をちゃんと理解し、自力でも書けないとダメです。 (1)~(5)を順番にやっていって、疑問があったら、個別に質問を立てていけばいいと思います。 (1)~(4)が出来ないのに(5)をやっても教えることが多すぎて、解決できません。 jQueryとjQuery-File-Uploadは別物ですね。jQuery-File-UploadはjQueryを使用した便利ツールです。 https://github.com/blueimp/jQuery-File-Upload#mandatory-requirements というわけで、私はこれで失礼しますね。頑張ってください。
退会済みユーザー

退会済みユーザー

2021/09/19 07:39

一通りの流れを教えていただき、ありがとうございます。 どういった手順で進めれば良いのかも分からない状況だったので、助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問