在我的网站主机中,我看到(通过phpinfo)
这让我觉得我应该可以上传大到16Mb的文件.但是,当我通过post方法(正常)执行此操作时,post_max_size接管并声明我发送了太多.
允许发送大到16Mb的文件的方法是什么?GET - PUT - 其他?
希望有人能为我澄清一下.
西蒙
我不知道这是否会发生,但我会尝试一下.
过去一小时,我研究了图像上传安全性.我了解到有很多功能可以测试上传.
在我的项目中,我需要安全上传图片.也可能有相当大的数量,并且可能需要大量带宽,因此购买API不是一种选择.
所以我决定获得一个完整的PHP脚本,用于真正的安全图像上传.我也认为它对许多人有帮助,因为找不到真正安全的人是不可能的.但我不是在PHP专家,所以它真的头疼,我添加一些功能,所以我会问这个社会的帮助来创建真正安全的图片上传的一个完整的脚本.
关于它的真正伟大的主题在这里(但是,它们只是告诉我们需要做什么,但不是如何做到这一点,正如我所说我不是PHP的主人,所以我无法做到这一切由我自己): PHP图片上传安全检查清单 https://security.stackexchange.com/questions/32852/risks-of-a-php-image-upload-form
总之,他们告诉这是安全图像上传所需要的(我将从上面的页面引用):
- 使用.httaccess禁止PHP在上传文件夹中运行.
- 如果文件名包含字符串"php",则不允许上传.
- 仅允许扩展名:jpg,jpeg,gif和png.
- 仅允许图像文件类型.
- 禁止具有两种文件类型的图像.
- 更改图像名称.上传到子目录而不是根目录.
也:
- 使用GD(或Imagick)重新处理图像并保存处理后的图像.所有其他人都对黑客来说很有趣"
- 正如rr指出的那样,使用move_uploaded_file()进行任何上传"
- 顺便说一句,你想要对你的上传文件夹非常严格.那些地方是许多漏洞
发生的黑暗角落之一.这适用于任何类型的上载和任何编程
语言/服务器.检查
https://www.owasp.org/index.php/Unrestricted_File_Upload- 第1级:检查扩展名(扩展名文件以)结尾
- 第2级:检查MIME类型($ file_info = getimagesize($ _ FILES ['image_file']; $ file_mime = $ file_info ['mime'];)
- 级别3:读取前100个字节并检查它们是否具有以下范围内的任何字节:ASCII 0-8,12-31(十进制).
- 级别4:检查标题中的幻数(文件的前10-20个字节).你可以在这里找到一些文件头字节:http:
//en.wikipedia.org/wiki/Magic_number_%28programming%29#Examples- 您可能还想在$ _FILES ['my_files'] ['tmp_name']上运行"is_uploaded_file".请参见
http://php.net/manual/en/function.is-uploaded-file.php
这是它的重要组成部分,但仍然不是全部.(如果您知道更多可能有助于使上传更安全的内容,请分享.)
这就是我们现在所做的事情
主要PHP:
function uploadFile ($file_field = null, $check_image = false, $random_name = false) {
//Config Section
//Set file upload path
$path = 'uploads/'; //with trailing slash
//Set max file size in bytes
$max_size …
Run Code Online (Sandbox Code Playgroud)我搜索过但没有找到任何针对我特定情况的疑问或答案.我有一台快速的新机器,有足够的内存运行Windows 7.我正在使用最新的Eclipse和Android SDK.
当我运行一个应用程序时,模拟器大约需要45秒才能启动(对于模拟器来说非常快!)从运行启动到运行我的应用程序.
如果我然后更改应用程序并在仍在运行的模拟器上重新运行它,则时间会增加到70+秒!与人们所有其他投诉相反,在我的情况下,重新启动模拟器比使用现有实例更快.我不喜欢那样.
这是时代:
2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:07:18 - hello Installing hello.apk...
2011-09-29 13:07:37 - hello Success!
Run Code Online (Sandbox Code Playgroud)
在更改应用程序以重新加载后重新运行:
2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:09:16 - hello Installing hello.apk...
2011-09-29 13:09:24 - hello Success!
Run Code Online (Sandbox Code Playgroud)
如您所见,当模拟器刚刚启动时,上传到模拟器仅需5秒.运行模拟器需要将近一分钟!这是延长重新运行时间的原因.即使我在重新运行它之前在模拟器上卸载应用程序,这也不会改变.
关于我可以尝试解决这个问题的任何想法?它似乎是某种沟通问题,可能与adb有关.
我认为这个表格有:
<!-- Bug (extra 'i') right here-----------v -->
<!-- was: <form method="post" enctype="mulitipart/form-data" action="/Task/SaveFile"> -->
<form method="post" enctype="multipart/form-data" action="/Task/SaveFile">
<input type="file" id="FileBlob" name="FileBlob"/>
<input type="submit" value="Save"/>
<input type="button" value="Cancel" onclick="window.location.href='/'" />
</form>
Run Code Online (Sandbox Code Playgroud)
这个代码在我的控制器中:
public ActionResult SaveFile( FormCollection forms )
{
bool errors = false;
//this field is never empty, it contains the selected filename
if ( string.IsNullOrEmpty( forms["FileBlob"] ) )
{
errors = true;
ModelState.AddModelError( "FileBlob", "Please upload a file" );
}
else
{
string sFileName = forms["FileBlob"];
var file …
Run Code Online (Sandbox Code Playgroud) 我正在使用plupload来上传ajax文件.现在plupload.Uploader类有很多选项,但没有其他数据.
例如 :
var uploader = new plupload.Uploader({
runtimes : 'gears,html5,flash,silverlight,browserplus',
browse_button : 'pickfiles',
container : 'contact_container',
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf',
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap',
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
],
resize : {width : 320, height : 240, quality : 90}
});
Run Code Online (Sandbox Code Playgroud)
我想要实现的是我的服务器中有一个文件夹,其中保存了所有上传内容.我需要在文件夹中为每个在那里上传文件的用户创建一个子文件夹.如何将像用户的id这样的数据添加到plupload.Uploader的实例中?或者,如果我将一个表单包装在容器div中,我能否在$ _REQUEST中看到它?还是有其他方法可以实现这个目标吗?
编辑器Summernote有问题.我想将图像上传到服务器上的目录中.我有一些脚本:
<script type="text/javascript">
$(function () {
$(\'.summernote\').summernote({
height: 200
});
$(\'.summernote\').summernote({
height:300,
onImageUpload: function(files, editor, welEditable) {
sendFile(files[0],editor,welEditable);
}
});
});
</script>
<script type="text/javascript">
function sendFile(file, editor, welEditable) {
data = new FormData();
data.append("file", file);
url = "http://localhost/spichlerz/uploads";
$.ajax({
data: data,
type: "POST",
url: url,
cache: false,
contentType: false,
processData: false,
success: function (url) {
editor.insertImage(welEditable, url);
}
});
}
</script>
<td><textarea class="summernote" rows="10" cols="100" name="tekst"></textarea></td>
Run Code Online (Sandbox Code Playgroud)
当然我有所有的js和css文件.我做错了什么?如果我单击图像上传并转到编辑器,则图像不在textarea中.
如果我删除sendFile函数和onImageUpload:图像保存在base64上.
链接到summernote:http://hackerwins.github.io/summernote/
我想允许将非常大的文件上传到我们的PHP应用程序中(数百个megs - 8演出).然而,这有几个问题.
浏览器:
服务器:
要求:
我有一个Web应用程序,可以接受最多4 MB的文件上传.服务器端脚本是PHP,Web服务器是NGINX.许多用户要求大幅提高此限制以允许上传视频等.
然而,PHP的这个问题似乎没有简单的解决方案.首先,在客户端,我正在寻找允许我在传输过程中块文件的东西.SWFUpload似乎没有这样做.我想我可以使用Java FX流式传输上传(http://blogs.oracle.com/rakeshmenonp/entry/javafx_upload_file),但我在PHP中找不到任何等效的request.getInputStream.
增加浏览器client_post限制或php.ini上传或max_execution
时间并不是真正大文件(~1GB)的真正解决方案,因为浏览器可能会超时并想到存储在内存中的所有blob.
有没有办法在服务器端使用PHP解决这个问题?谢谢你的回复.
我找不到TrueType字体的正确MIME类型.我需要它,因为我正在使用文件上传类(CodeIgniter)来上传文件,我想只允许上传TTF.试过这个:
'ttf' => 'font/ttf'
'ttf' => 'font/truetype'
Run Code Online (Sandbox Code Playgroud)
没有成功.
有任何想法吗 ?
我创建了一个从我有权访问的FTP服务器下载文件的功能.如何将文件上传回FTP服务器?
下面是我使用的download_files方法:
public static void download_files(String un, String pw, String ip, String dir, String fn, String fp){
URLConnection con;
BufferedInputStream in = null;
FileOutputStream out = null;
try{
URL url = new URL("ftp://"+un+":"+pw+"@"+ip+"/"+dir+"/"+fn+";type=i");
con = url.openConnection();
in = new BufferedInputStream(con.getInputStream());
out = new FileOutputStream(fp+fn);
int i = 0;
byte[] bytesIn = new byte[1024];
while ((i = in.read(bytesIn)) >= 0) {
out.write(bytesIn, 0, i);
}
}catch(Exception e){
System.out.print(e);
e.printStackTrace();
System.out.println("Error while FTP'ing "+fn);
}finally{
try{
out.close();
in.close();
}catch(IOException e){
e.printStackTrace();
System.out.println("Error …
Run Code Online (Sandbox Code Playgroud) upload ×10
php ×5
image ×2
large-files ×2
android ×1
apk ×1
asp.net-mvc ×1
download ×1
emulation ×1
file-upload ×1
filesize ×1
fonts ×1
ftp ×1
java ×1
javascript ×1
jquery ×1
mime ×1
performance ×1
plupload ×1
security ×1
summernote ×1