問題タブ [image-file]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - スペースを含むファイル名の問題
OpenCart Framework バージョン 3.0.2.0 にはバグがあります。
間にスペースが含まれるファイル名のファイルがあると、処理と実行に時間がかかりすぎます
例:考慮してください
img = https://DomainNameServer/image/catalog/pimages/SKU 081985 P80.jpg
以下の機能を使用します。
画像は破損/RAW 形式で保存され、スループットなしでより多くの遅延が発生しました
file_put_contents($dstfile, $return);
画像は、適切なスループットでより多くのレイテンシーで完全に保存されました
copy(str_replace(" ", "%20", $srcfile), $dstfile);
画像はテキスト形式で保存され、スループットが不適切で待ち時間が長くなりました
@copy($srcfile, $dstfile); $content = file_get_contents($srcfile); $fp = fopen($dstfile , "w+"); fwrite($fp, $content); $Image = 'catalog/prod/'.$filepath['basename']; fclose($fp); curl_close($process);
copy(urlencode($srcfile), $dstfile);
結果:
警告: copy(https%3A%2F%2Fwww.DomainNameServer.in%2Fimage%2Fcatalog%2Fpimages%2FSKU093126+%281%29.jpg): ストリームを開けませんでした: /var/www/html/opencart3にそのようなファイルまたはディレクトリはありません/admin/model/account/apisync.php行 264
copy(urldecode($srcfile), $dstfile);
結果:
警告: copy( https://www.DomainNameServer.in/image/catalog/pimages/SKU093126 (1).jpg): ストリームを開くことができませんでした: HTTP 要求が失敗しました! /var/www/html/opencart3/admin/model/account/apisync.phpの264行目
copy(str_replace('_','%20',$srcfile), $dstfile);
結果:
警告:copy( https://www.DomainNameServer.in/image/catalog/pimages/SKU093126 (1).jpg): ストリームを開くことができませんでした: HTTP 要求が失敗しました! /var/www/html/opencart3/admin/model/account/apisync.phpの 265行 目
copy(str_replace('%20',' ',$srcfile), $dstfile);
またはcopy(str_replace('%20','_',$srcfile), $dstfile);
またはcopy(str_replace('%20','',$srcfile), $dstfile);
結果:
警告: copy( https://www.DomainNameServer.in/image/catalog/pimages/SKU093126 (1).jpg): ストリームを開くことができませんでした: HTTP 要求が失敗しました! /var/www/html/opencart3/admin/model/account/apisync.phpの 265行 目
API 機能を構築するとき、10,000 製品のうち 1091 製品のみがデータベースに保存され、残りの 8909 製品は実行に 7 ~ 10 時間かかりました。実行時間制限を無限に設定しているため。10時間後に確認したところ、すべての商品が無事保存されていました。
合計所要時間は、no に正比例します。スペースを含む画像ファイル名の
いいえをエクスポートします。スペースを含む画像ファイル名により商品の表記が異なります。画像ファイル名にスペースが含まれる 3 つの製品のデバッグを行ったときは、addSubImages()
実行に 1 秒もかからない関数なしで完了するのに 20 分かかりました。
このシナリオを回避するためのソリューションに他のアプローチがある場合は?