2013-05-14 6 views
8

Ich möchte in der Lage sein, eine Remote-Datei auf meinem Server über phpbb hochladen, ohne die Datei zuerst auf meinen PC heruntergeladen werden. Wie kann dies erreicht werden?phpBB Remote-Datei-Upload

Ich habe einige einfachen Code, den ich getestet habe und es macht den Job, aber wo kann ich es setzen und was muss ich in phpBB ändern?

<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); 
} 
?> 

Oder ist es möglich, in phpBB in die Fernbedienung Avatar-Funktion zu nutzen (dh includes/functions_upload.php. -> Funktion remote_upload ($ UPLOAD_URL))? ich muss natürlich die remote-datei über die üblichen phpBB-funktionen gesendet werden, um in die DB und alle eingefügt zu werden.

+0

welche Version Sie verwenden ? – Abadis

+0

die neueste Version - 3.0.11 –

+1

Erstellen Sie eine Sicherungskopie von ** includes/functions_upload.php ** und öffnen Sie dann das Original, platzieren Sie Ihren Code wo nötig und folgen Sie dann dem Prozess, dass PHPBB Dateien hochlädt (Einfügen in db, auf schädliche Dateien prüfen) und probieren Sie es aus. –

Antwort

4

offene Datei includes/message_parser.php

über Linie finden 1373

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

und ersetzen mit

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

offene Datei includes/functions_posting.php

über Linie finden 414

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

ersetzen mit

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

offene Stile/your_style/templates/posting_attach_body.html

finden

<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> 

abgeben

<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> 

Le t mich, wenn Sie möchten, dass ich einen Mod zu erstellen, damit Sie mit AutoMod installieren oder wenn Sie zusätzliche MIME-Typen mit der remote_upload Funktion benötigen

getestet @http:/www.damienkeitel.com

+2

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

+0

Danke Für den Mod ist das mehr, als ich mir erhoffen konnte. Ich habe es ausprobiert, habe aber ein Problem, ich bekomme => Die angegebene URL ist ungültig. beim Hochladen. Ich weiß, dass diese URL in Ordnung ist. –

+0

Sind Sie in Erweiterungen gegangen und haben die Erweiterungen erlaubt? post/mange extensions group und dann auf eines der Zahnräder klicken, um verschiedene Dateitypen/Erweiterungen zu verwenden –

Verwandte Themen