1

さて、質問があります。リンクをTEXTAREAに入れ、送信を押すことで、複数の画像をリモートアップロード(サイトからサーバーに画像をコピー)したい。複数の画像でこれを可能にする方法がわかりません。

copy(); を使用して単一の画像で作成できます。機能しますが、TEXTAREA 内の複数のエントリには使用できません。

また、リモート アップロード機能を最大 30 個のリモート リンクに制限し、1 つの画像が 10MB を超えないようにしたいと考えています。しかし、開始方法がわかりません。cURL はこれを作成できると聞きました。また、file_get_contents(); file_put_contents() で; 同様のものを作ることができますが、私はまだ自分でそれを行う方法を理解できません。

誰か助けて?:)

4

3 に答える 3

1

単一の画像で現在行っているのと同じ手順を使用できますが、ループで実行します。

$lines = explode("\n", $_POST['textarea']);
if(count($lines) > 30) {
  die('Too many files');
}
foreach($lines as $line) {
  $srcfile = trim($line);
  //copy $srcfile here
  //check size of the file with filesize()
}
于 2011-05-29T11:18:46.983 に答える
1

から URL を解析する必要がありますtextarea。この PHP 側では、正規表現を使用できます。

次に、解析された URL とarray_slice()最初の 30 個、または 30 個を超える場合はエラーを調べることができます。

次に、リモート サーバーからファイルをコピーする必要があります。Content-Lengthヘッダーを調べて、ファイルが 10 MB 未満であることを確認できます。HEADの代わりに使用して、ヘッダーだけを取得できますGET

于 2011-05-29T11:19:16.403 に答える
1

私はPHPに精通していませんが、次のことをお勧めします。

複数ファイルのアップロードの問題を解決する:

  • 改行でテキスト領域のコンテンツを分割する

  • 次に、それらを繰り返して画像を取得します

各ファイルのサイズを変数に保存しますが、サイズを取得する方法は?

  • exec (システム) 呼び出しを実行してファイル サイズを知ることができます (これには完全なイメージのダウンロードが必要ですが、最も便利な方法です)。または、コンテンツの長さが 10 MG を超える場合は、Content-Length ヘッダー値を利用できます。スキップして次の項目に移動します。

画像をダウンロードするには?

  • file put content を使用しますが、コンテンツ タイプを保持するために、エンコードを必ずバイナリ エンコードとして配置してください。
于 2011-05-29T11:22:28.447 に答える