2013-05-14 63 views
8

我希望能夠通過phpbb將遠程文件上傳到我的服務器,而無需先將文件下載到我的PC。這怎麼能實現?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函數發送遠程文件,將其插入到數據庫和所有數據庫中。

+0

? – Abadis 2013-05-19 07:23:27

+0

最新版本 - 3.0.11 – 2013-05-19 11:24:29

+1

創建** includes/functions_upload.php **的備份,然後打開原件,在必要時放置代碼,然後按照PHPBB上傳文件的過程(插入到db,檢查惡意文件)並試用。 – 2013-05-19 22:22:27

回答

4

打開文件包括/ message_parser.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; 

打開文件替換包括/ functions_posting.php

找到線414

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

更換

$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

找到

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

樂牛逼我知道如果你要我創建一個國防部您與AutoMod的安裝,或者如果你需要額外的MIME類型與remote_upload功能,您使用的版本測試@http:/www.damienkeitel.com

+2

Automod在這裏安裝 - > https://www.phpbb.com/community/viewtopic.php?f=70&t=2184331&p=13312954 – 2013-05-24 07:13:46

+0

謝謝對於國防部來說,這比我希望的要多。我已經嘗試過,但遇到問題,我得到了=>您指定的網址無效。當試圖上傳時。我知道這個網址是好的。 – 2013-05-24 07:49:47

+0

你有沒有進入擴展並允許擴展?發佈/管理擴展組,然後點擊任意一個齒輪來啓用不同的文件類型/擴展 – 2013-05-24 08:56:35