【问题标题】:Dropzone js and Verot's upload, how to upload to dynamic folder?Dropzone js和Verot的上传,如何上传到动态文件夹?
【发布时间】:2016-10-02 00:16:53
【问题描述】:

我正在使用 Dropzone.js 和 Verot 的 class.upload.php 创建一个简单的上传文件。 我想让图像从 $_GET[] 变量动态上传到文件夹。

以下是我的代码,但无论我做什么,所有文件都会上传到“uploads”文件夹。

上传.php

<?php include('includes/php/class.upload.php');  ?>

<form action="upload.php" class="dropzone"></form>

<?php

$ds = DIRECTORY_SEPARATOR;
$filesFolder = 'uploads';

if(isset($_GET['album'])){
$targetDir = dirname(__FILE__).$ds.$filesFolder.$ds.$_GET['album'];
}else{
$targetDir = dirname(__FILE__).$ds.$filesFolder;
}

if(!empty($_FILES)){

$handle = new upload($_FILES['file']);

if ($handle->uploaded) {
    $handle->image_resize         = true;
    $handle->image_x              = 960;
    $handle->image_ratio_y        = true;
    $handle->process($targetDir);
}
}



?>`

所以,如果 url 是 index.php?album=rocks,图片应该上传到“uploads/rocks”。但是,现在所有内容都被上传到“上传”。

如果我将 $filesFolder 变量直接更改为“uploads/rocks”文件上传到目标文件夹。

我做错了吗?或者除了使用 $_GET 之外还有更好的方法来实现这一点。

【问题讨论】:

  • 对于文件上传,您的表单必须具有属性 `enctype="multipart/form-data"
  • 您是否尝试允许上传文件夹?
  • @guest271314 不,只有图像根据 $_GET 变量上传到动态文件夹
  • @Franco,谢谢。我添加到我的表单中,但文件仍然没有从 GET 变量上传到文件夹。

标签: javascript php file-upload upload dropzone.js


【解决方案1】:

您的代码的问题是 $_GET['album'] 根据您当前的代码不存在,因此永远不会创建扩展路径。对于 GET 请求,您必须在表单中使用隐藏输入。但也请注意,如果您计划在实时网站或软件中使用此代码,请通过验证和清理正确保护数据。

<form action = "upload.php" method="get" enctype="multipart/form-data">
    <input type="hidden" name="dir" value="album"/>
    <input type="submit"/>
</form>

【讨论】:

  • 你能举个例子吗?谢谢
  • 您必须使用帖子将其作为我想念的隐藏表格发送。自从我做表格以来已经有一段时间了:)
  • 啊...我明白你的意思了。谢谢!现在根据您的建议有效! :) 另外,注意它的验证。我将其更改为 $_POST 并且一切正常。
猜你喜欢
  • 2018-05-13
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 2018-08-22
  • 1970-01-01
相关资源
最近更新 更多