2013-05-14 5 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

찾을 포함/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; 

열려있는 파일과 대체 포함 414

추가

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

찾을

$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

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

교체

<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으로 설치하거나 remote_upload 기능을 추가 MIME 유형을 필요로하는 경우

당신이 어떤 버전을 사용하고 http:/www.damienkeitel.com

+2

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

+0

감사합니다. 모드에 대한, 그게 내가 희망 할 수있는 것보다 더. 나는 그것을 시험해 보았지만 문제가 생겼다. => 당신이 지정한 URL이 유효하지 않다. 업로드하려고 할 때. 나는이 URL이 좋다는 것을 안다. –

+0

확장 프로그램을 사용하고 확장 프로그램을 허용 했습니까? post/mge extensions 그룹을 선택하고 톱니 바퀴를 클릭하여 다른 파일 형식/확장자를 사용할 수있게하십시오. –