web-dev-qa-db-ja.com

Chrome 83:ファイルをアップロードできません

Chrome=を更新しましたが、「Ajaxアップロード」コンポーネントを使用する一部のフォーム(詳細は以下を参照)が機能しません。新しいの問題を読みましたバージョン( https://developers.google.com/web/updates/2020/05/nic8 )ですが、フォーム、iframe、ファイル、ajax、投稿に関連するものは見つかりません。

私はフィドラーにサンプルを投稿してみますが、誰かがそれについて何か知っているかどうか知りたいです。

他の方法では、他のフォームでは、マルチファイル、ドラッグ&ドロップアップローダー(dropzone.js)を使用していますが、正常に動作しますが、変換が簡単ではなく、高速なソリューションが必要です。

ダミーのサンプル(アップロードをテストするためのサンドボックスはありません): https://jsfiddle.net/drvespa/7ue8k94r/3/

  • Chrome 83(私もCanary 85バージョンを試しました)):エラーをスローせず、フォームの送信がAjaxUploadコンポーネントによってキャッチされません。送信前にコールバックが呼び出されています完了し、応答は空です。
  • Firefoxの場合、エラーがスローされます。これは、AjaxUploadコンポーネントがダミーのアップロードページの404をデシリアライズしようとしているためです。

ライブラリを https://filebin.net/8sgsmq7sh14m0qen に投稿します。

/**
* Ajax upload
* Project page - http://valums.com/ajax-upload/
* Copyright (c) 2008 Andris Valums, http://valums.com
* Licensed under the MIT license (http://valums.com/mit-license/)
* Version 3.6 (26.06.2009)
*/
11
Marc

私たちはこの古いプラグインを使用していました:

http://jquery.malsup.com/form/#options-object

過去10年間のある時点でie8をサポートしていた場合に使用できるオプションがあります...

{
    url: '/branded/image_upload',
    type: 'POST',
    iframe: false
}

また、<textarea></textarea>レスポンスのラッパーハック。

このコードは多くの繰り返しを通して受け継がれました笑。

0
Throttlehead

ありがとうございました!また、これ以降もOpencart 1.5を使用しているすべてのユーザーにとって、Chrome更新、画像とドキュメントのアップロードは、次のように追加することで修正されます。

iframe.setAttribute('srcdoc', this._settings.action);

\ admin\view\javascript\jquery\ajaxupload.js

var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
            // src="javascript:false; was added
            // because it possibly removes ie6 Prompt 
            // "This page contains both secure and nonsecure items"
            // Anyway, it doesn't do any harm.
            iframe.setAttribute('id', id);
            iframe.setAttribute('srcdoc', this._settings.action);
            iframe.style.display = 'none';
            document.body.appendChild(iframe);
0
OliverS