标签:jquery php upload dropzone-js
我使用dropzone.js,上传插件和PHP.我正在尝试使用dropzone show success Icon和打印图像预览,但它没有将我的图像上传到上传目录.我怎样才能解决这个问题?
HTML:
<div class="dropzone dropzone-previews" id="my-awesome-dropzone">
<form action="<?PHP echo SITE.'/controller/'?>upload.php"></form>
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
JS:
<script>
$(document).ready(function(){
Dropzone.options.myAwesomeDropzone = { // The camelized version of the ID of the form element
// The configuration we've talked about above
url: '<?PHP echo SITE.'/controller/'?>upload.php',
previewsContainer: ".dropzone-previews",
uploadMultiple: true,
parallelUploads: 100,
maxFiles: 100
}
});
</script>
PHP:
<?php
$ds = DIRECTORY_SEPARATOR; //1
$storeFolder = '../../uploads/news/'; //2
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name']; //3
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
$targetFile = $targetPath. $_FILES['file']['name']; //5
move_uploaded_file($tempFile,$targetFile); //6
}
?>
解决方法:
解决此问题需要2件不同的东西.
在我看来,你正在使用http://www.startutorial.com/articles/view/how-to-build-a-file-upload-form-using-dropzonejs-and-php开始使用dropzone.根据您的操作系统,您将需要更改您的文件权限,即使该页面上的注释线程表明它在本地工作.对于所有AMP堆栈甚至在不同的堆栈版本/分发中都不是这样.
第一
确保正确设置上载路径的权限.某些文件夹(例如tmp psuedo文件夹,没有此问题,但用户创建的端点可能.如果您使用特定的操作系统/堆栈名称更新您的问题,我将使用必要的具体步骤更新此答案.
第二
将enctype = multipart / form-data属性添加到表单标记.
很重要
关于Marc B提出的主题,我想指出本教程只是一个起点,如果没有某种验证和安全性,不应上传到任何可公开访问的环境.基本的安全性就是这样,只允许上传某些扩展(可以在服务器端完成,也可以在dropzone.js初始化中配置),并添加一个CSRF token.下面是一些建议的dropzone选项配置设置,以至少加强客户端验证:
var unique = "some-unique-string";
var acceptedFileTypes = "image/*"; //dropzone requires this param be a comma separated list
Dropzone.options.myAwesomeDropzone = {
// your other settings as listed above
maxFiles: 10, // allowing any more than this will stress a basic php/mysql stack
paramName: unique,
headers: {"MyAppname-Service-Type": "Dropzone"},
acceptedFiles: acceptedFileTypes
}
还有一些基于以上内容的PHP注意事项:
>您需要添加一个检查以确保自定义标头位于请求中(这只是一个更简单的安全步骤
>使用php添加一个检查以确保文件具有可接受的类型(无论服务器端验证如何,您总是应该这样做)
>我建议您在使用php验证之前将所有文件名转换为小写
>编辑:你还需要确保改变你的php $_FILES [‘file’]来匹配dropzone paramName选项配置的唯一字符串..& _Files [‘some-unique-string’]
标签:jquery,php,upload,dropzone-js 来源: https://codeday.me/bug/20190612/1226971.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。