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

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

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

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

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

解決済

ec cube4にて商品画像をアップロードしようとするとjsonエラーになる

teraweb
teraweb

総合スコア25

PHP

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

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

1回答

0リアクション

0クリップ

409閲覧

投稿2022/03/31 12:01

xamppでは問題ないのですがエックスサーバーで管理画面から商品登録しようとするとjsonエラーになります。
原因がわからず教えていただけると助かります。

ec cube バージョン4.03
phpバージョン 7.2

product.twig

var count_add = {{ form.add_images|length|default(0) }}; $('#{{ form.product_image.vars.id }}').fileupload({ url: "{{ url('admin_product_image_add') }}", type: "post", sequentialUploads: true, dataType: 'json', dropZone: $('#upload-zone'), done: function(e, data) { $('.progress').hide(); $.each(data.result.files, function(index, file) { var path = '{{ asset('', 'temp_image') }}' + file; var $img = $(proto_img.replace(/__path__/g, path)); var $new_img = $(proto_add.replace(/__name__/g, count_add)); $new_img.val(file); $child = $img.append($new_img); $('#thumb').append($child); count_add++; }); hideThumbnail(); updateSortNo(); }, fail: function(e, data) { alert("{{ 'admin.common.upload_error'|trans }}"); }, always: function(e, data) { $('.progress').hide(); $('.progress .progress-bar').width('0%'); }, start: function(e, data) { $('.progress').show(); }, acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, maxFileSize: 10000000, maxNumberOfFiles: 10, progressall: function(e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); $('.progress .progress-bar').css( 'width', progress + '%' ); }, processalways: function(e, data) { if (data.files.error) { alert("{{ 'admin.common.upload_error'|trans }}"); } } }); // 画像アップロード $('#file_upload').on('click', function() { $('#{{ form.product_image.vars.id }}').click(); });

ProductController.php

/** * @Route("/%eccube_admin_route%/product/product/image/add", name="admin_product_image_add", methods={"POST"}) */ public function addImage(Request $request) { if (!$request->isXmlHttpRequest()) { throw new BadRequestHttpException(); } $images = $request->files->get('admin_product'); $allowExtensions = ['gif', 'jpg', 'jpeg', 'png']; $files = []; if (count($images) > 0) { foreach ($images as $img) { foreach ($img as $image) { //ファイルフォーマット検証 $mimeType = $image->getMimeType(); if (0 !== strpos($mimeType, 'image')) { throw new UnsupportedMediaTypeHttpException(); } // 拡張子 $extension = $image->getClientOriginalExtension(); if (!in_array(strtolower($extension), $allowExtensions)) { throw new UnsupportedMediaTypeHttpException(); } $filename = date('mdHis').uniqid('_').'.'.$extension; $image->move($this->eccubeConfig['eccube_temp_image_dir'], $filename); $files[] = $filename; } } } $event = new EventArgs( [ 'images' => $images, 'files' => $files, ], $request ); $this->eventDispatcher->dispatch(EccubeEvents::ADMIN_PRODUCT_ADD_IMAGE_COMPLETE, $event); $files = $event->getArgument('files'); return $this->json(['files' => $files], 200); }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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

Symfony

Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。