私はかなりの苦境に直面しており、それに対処するための最も効率的な戦略を探しています。
ブログのように、基本的な記事に画像が添付されたシンプルなニュース サイトを運営しています。PHP-SQL フロントエンドと管理パネル。
問題は、元のソースを作成した人は、アップロードされた jpg の数が特定のシステム制限を超えることを考慮していなかったため、そのフォルダーにアップロードできなくなったことです。
私が考える各ソリューションには妥協が必要です。そのうちの最悪のソリューションは明らかに... 10000 を超える SQL レコードを手動で編集することです。
...ここで、サブフォルダーを含むフォルダーまたは同じレベルの別のフォルダーに移行する必要がありますが、フロントエンドとバックエンドの機能を維持しながらこれを行うにはどうすればよいでしょうか (つまり、画像ファイルで 404 を回避します)。
SQLレコードのIDが今日の最新のものよりも大きいか小さいかに基づいて、固定された(私が)フォルダーを割り当てるスイッチ またはifステートメントを作成することを考えていました(この壁にぶつかったとき) )、しかし、もしそうなら、PHPMAKER ソース (素晴らしいテーブル マネージャー ジェネレーター ソフトウェアです) を回避する方法を学ばなければなりません。
変数に基づいて動的なアップロード フォルダーを実装したいのですが、方法がわかりません。アップロードの構成を扱うコードのサンプルを次に示します。
フォルダー「picarticles」(1 つ) に行に画像を追加します。
$this->picture->UploadPath = "/../picarticles/";
if ($this->picture->Upload->Action == "1") { // Keep
if ($rsold) {
$rsnew['picture'] = $rsold->fields['picture'];
}
} elseif ($this->picture->Upload->Action == "2" || $this->picture->Upload->Action == "3") { // Update/Remove
if (is_null($this->picture->Upload->Value)) {
$rsnew['picture'] = NULL;
} else {
$rsnew['picture'] = ew_UploadFileNameEx(ew_UploadPathEx(TRUE, $this->picture->UploadPath), $this->picture->Upload->FileName);
}
$this->picture->ImageWidth = 500; // Resize width
$this->picture->ImageHeight = 400; // Resize height
}
または、行から画像をレンダリングする場合:
$this->picture->UploadPath = "/../picarticles/";
if (!ew_Empty($this->picture->Upload->DbValue)) {
$this->picture->ViewValue = $this->picture->Upload->DbValue;
$this->picture->ImageWidth = 100;
$this->picture->ImageHeight = 80;
$this->picture->ImageAlt = $this->picture->FldAlt();
} else {
$this->picture->ViewValue = "";
}
$this->picture->ViewCustomAttributes = "";
これは、動的なものの興味深い候補となるタイムスタンプを追加するためのものです。
$this->timestamp->SetDbValueDef($rsnew, ew_CurrentDateTime(), NULL);
$rsnew['timestamp'] = &$this->timestamp->DbValue;
または、キーワードの文字列の最初または2番目の用語を使用してフォルダーとして機能させることもできます。これは、新しいjpgがあったほど多くの新しいフォルダーが作成されないためです..
$this->keywords->SetDbValueDef($rsnew, $this->keywords->CurrentValue, NULL, FALSE);