2013-05-14 3 views
8

ファイルを自分のPCにダウンロードせずに、リモートファイルをphpbb経由でサーバーにアップロードしたいと考えています。これはどのように達成できますか?phpBBリモートファイルアップロード

私はいくつかの簡単なコードをテストしましたが、それは仕事ですが、どこに置くことができ、phpBBで何を修正する必要がありますか?

<form method="post"> 
    <input name="url" size="50"/> 
    <input name="submit" type="submit"/> 
</form> 

<?php 
// maximum execution time in seconds 
set_time_limit(24 * 60 * 60); 

if (!isset($_POST['submit'])) die(); 

// folder to save downloaded files to. must end with slash 
$destination_folder = 'mydownloads/'; 

$url = $_POST['url']; 
$newfname = $destination_folder . basename($url); 

//Open remote file 
$file = fopen($url, "rb"); 
if ($file) { 
    //Write to local file 
    $newf = fopen($newfname, "wb"); 
    if ($newf) { 
     while (!feof($file)) { 
      fwrite($newf, fread($file, 1024 * 8), 1024 * 8); 
     } 
    } 
} 

if ($file) { 
    fclose($file); 
} 

if ($newf) { 
    fclose($newf); 
} 
?> 

それとも、phpBBのリモートアバター機能を活用することが可能である(つまり、/ functions_upload.phpが含まれて - 。>関数remote_upload($のUPLOAD_URL))? 私は当然のことながら、通常のphpBB関数を介してリモートファイルを送信してDBに挿入する必要があります。

+0

@テストした場合トン、私は知っています? – Abadis

+0

最新バージョン - 3.0.11 –

+1

** includes/functions_upload.php **のバックアップを作成し、元のファイルを開き、必要な場所にコードを置き、PHPBBがファイルをアップロードするプロセスに従います(db、悪意のあるファイルをチェック)し、試してみてください。 –

答えて

4

開いているファイルは、/ functions_posting.php

はラインについて見つけるライン1373

$upload_file = (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none' && trim($_FILES[$form_name]['name'])) ? true : false; 

について見つけると

$upload_file = (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none' && trim($_FILES[$form_name]['name'])) ? true : (!empty($_POST['urlupload'])) ? true : false; 

開いているファイルを置き換える/ message_parser.php

を含み414

$file = ($local) ? $upload->local_upload($local_storage, $local_filedata) : $upload->form_upload($form_name); 

<dl> 
    <dt><label for="fileupload">{L_FILENAME}:</label></dt> 
    <dd> 
     <input type="file" name="fileupload" id="fileupload" maxlength="{FILESIZE}" value="" class="inputbox autowidth" /> 
     <input type="submit" name="add_file" value="{L_ADD_FILE}" class="button2" onclick="upload = true;" /> 
    </dd> 
</dl> 

<dl> 
    <dt><label for="urlupload">Remote File:</label></dt> 
    <dd> 
     <input type="url" name="urlupload" id="urlupload" maxlength="{FILESIZE}" value="" class="inputbox autowidth" /> 
     <input type="submit" name="add_file" value="{L_ADD_FILE}" class="button2" onclick="upload = true;" /> 
    </dd> 
</dl> 

ル後に追加見つける

$file = ($local) ? $upload->local_upload($local_storage, $local_filedata) : (!empty($_POST['urlupload'])) ? $upload->remote_upload($_POST['urlupload']) : $upload->form_upload($form_name); 

オープンスタイル/ your_style /テンプレート/ posting_attach_body.html

と交換あなたはautomodをインストールするためのMODを作成するために私をしたいと思いますかあなたはremote_upload機能付きの余分なMIMEタイプが必要な場合

http:/www.damienkeitel.com使用しているバージョン

+2

Automod install here - > https://www.phpbb.com/community/viewtopic.php?f=70&t=2184331&p=13312954 –

+0

ありがとうモッドのために、それは私が望むことができる以上のものです。私はそれを試してみましたが問題がある、取得する=>指定したURLが無効です。アップロードしようとしているとき。私はこのURLが上手であることを知っています。 –

+0

あなたは内線番号に入り、その内線番号を許可しましたか?掲示/拡張機能グループを選択してから、任意のファイルタイプ/拡張機能を使用できるようにコグホイールをクリックしてください。 –