首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpBB远程文件上载

phpBB远程文件上载
EN

Stack Overflow用户
提问于 2013-05-14 19:37:17
回答 1查看 2K关注 0票数 8

我希望能够通过phpbb将远程文件上传到我的服务器,而不需要先将文件下载到我的PC上。如何才能做到这一点?

我有一些简单的代码,我已经测试过了,它可以做这项工作,但是我可以把它放在哪里,我需要在phpBB中修改什么?

代码语言:javascript
复制
<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 -> function remote_upload($upload_url)?当然,我需要通过通常的phpBB函数发送远程文件,以便插入到数据库中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 22:34:47

打开文件包含/message_parser.php

查找关于137行的信息

代码语言:javascript
复制
    $upload_file = (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none' && trim($_FILES[$form_name]['name'])) ? true : false;

并替换为

代码语言:javascript
复制
    $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行

代码语言:javascript
复制
    $file = ($local) ? $upload->local_upload($local_storage, $local_filedata) : $upload->form_upload($form_name);

替换为

代码语言:javascript
复制
    $file = ($local) ? $upload->local_upload($local_storage, $local_filedata) : (!empty($_POST['urlupload'])) ? $upload->remote_upload($_POST['urlupload']) : $upload->form_upload($form_name);

打开styles/your_style/templates/posting_attach_body.html

发现

代码语言:javascript
复制
    <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>

添加到后面

代码语言:javascript
复制
    <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>

如果您想让我创建一个mod用于自动安装,或者您是否需要额外的mime类型和remote_upload函数,请让我知道

已测试@ http:/www.damienkeitel.com

phpbbphpbb3

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16542156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档