Технически возможно изменить папку загрузки OpenCart на другой сервер?

1

В OpenCart 2.0 технически возможно изменить папку для загрузки, где клиенты могут загружать файлы? В основном это определяется в config.php (как в папке root, так и в папке администратора) следующим образом:

define('DIR_UPLOAD', '/home/www/shop/system/upload/');

Можно ли просто изменить этот пункт назначения (например, на другой сервер)?

В настоящее время я использую этот код (просто измененный каталог /.../product/product.tpl):

<?php if ($option['type'] == 'file') { ?>
<!-- Button trigger modal -->
                    <button type="button" class="btn btn-default btn-block" data-toggle="modal" data-target="#myModal">
                      <i class="fa fa-upload"></i> <?php echo $button_upload; ?>
                    </button>
                <!-- Modal -->
                    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                      <div class="modal-dialog">
                        <div class="modal-content">
                          <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel"><?php echo $button_upload; ?></h4>
                          </div>
                          <div class="modal-body embed-responsive">
                            <iframe height="300px"  width="350px" frameborder="0" class="embed-responsive-item" src="captcha/captcha.php"></iframe>                 
                          </div>
                          <div class="modal-footer">
                            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>        
                          </div>              
                        </div>
                      </div>
                    </div>

После успешной перекодировки запускает этот index.php в iframe (выполняется на другом сервере, который является сетевым хранилищем с исправлением IP):

<!DOCTYPE html>
<html>
<body>
<form action="index.php?new_upload=true" method="post" enctype="multipart/form-data">
    File to upload:
    <input type="file" name="fileToUpload" id="fileToUpload"><input type="submit" value="Upload" name="submit"> 
</form>
<?php
if (isset($_GET['new_upload'])) {
    upload();
}

function upload() {
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $fileType = pathinfo($target_file,PATHINFO_EXTENSION);

    // Check if file already exists
    if (file_exists($target_file)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0; break;
    }
    // Check file size
    if ($_FILES["fileToUpload"]["size"] > 10000000) {
        echo "Sorry, your file is too large.";
        $uploadOk = 0; break;
    }
    // Allow certain file formats
    if($fileType != "jpg" && $fileType != "png" && $fileType != "jpeg" && $fileType != "pdf" && $fileType != "JPG" && $fileType != "JPEG" && $fileType != "gif" ) {
        echo "Sorry, only JPG, JPEG, PNG, PDF & GIF files are allowed.";
        $uploadOk = 0; break;
    }
    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded."; break;
    // if everything is ok, try to upload file
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
            chmod($target_file, 0777); //change permission
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }
}

?>
</body>
</html>

Это прекрасно работает, и вы можете легко загружать файлы на сервер, но я ищу лучшее решение. Это не связано с заказом и загруженным файлом, как это обычно делает opencart.

  • 1
    «(Например , на другой сервер)» - это скорее не «например , » вещь, но полностью меняет сферу вопроса. Обычно выгрузка файлов обрабатывается только в файловой системе сервера, на котором выполняется скрипт - и передача файлов оттуда на другой сервер, скорее всего, не будет работать, просто изменив значение этой константы, но с большей вероятностью требуют более глубоких изменений в коде, который фактически обрабатывает загруженные файлы.
Теги:
file-upload
opencart
upload
opencart2.x

1 ответ

0

Да, это сработает, но вы должны иметь в виду некоторые вещи.

  1. В папке он должен быть там.

  2. Папка должна иметь соответствующие разрешения.

Это будет нормально работать.

  • 0
    Я отредактировал свой вопрос.
  • 1
    Это может быть возможно с библиотекой CURL.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню