我正在做一个上传脚本时,我测试的图像文件与此扩展。JPG,我不知道jpg和jpeg有什么区别,但是$_FILES似乎不认识这个文件类型。
我读过几个线程,在mime类型中,$\u文件不太可靠,所以我决定使用php的mime类型函数mime\u content\u type()
,php的getimagesize()
,pathinfo()
,虽然pathinfo返回文件名和类型,但我需要不存在的文件路径,所有函数都以$\u FILES['file']['tmp\u name']作为参数传递。
所以,当我决定上传一个图像文件,例如sample时,这个问题就出现了。JPG,我想这些文件大部分都是从相机里拍出来的
主要问题是$_FILES中的字段['tmp_name']没有值。JPG将被上传。
任何遇到过这个问题的人,请分享你的解决方案或“你是怎么做到的”之类的东西。
因为我的评分太低,所以发布答案。
记得在php中设置最大文件大小上限后重新启动服务器。伊尼。我花了几个小时在这个问题上,认为这不是一个文件大小的问题,同时我忘了重新启动。重启后一切正常。
我希望这能帮助别人。
检查您的php.ini
,特别是这个设置
; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 6M
或者在Apache配置中这样做:
<Directory "/var/www/vhosts/path/to/your/directory/import/">
php_value post_max_size 6M
php_value upload_max_filesize 6M
</Directory>
我还想说,如果你上传的文件比你的PHP文件大,PHP不会在错误日志中报告错误,这是很糟糕的。iniupload\u max\u filesize
设置。例如,如果你上传一个6MB的文件,而你将它设置为2M
(我认为这是默认值)。
如果$\u FILES[$field]['tmp\u name']
为空,则该文件尚未上载。您应该查看$\u文件[$field]['error']
以了解原因。
据我所知,$\u FILES[]
中的mime类型是由浏览器提供的。
更新:下面是一些处理所有文件上载错误的封装代码:
$message = 'Error uploading file';
switch( $_FILES['newfile']['error'] ) {
case UPLOAD_ERR_OK:
$message = false;;
break;
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$message .= ' - file too large (limit of '.get_max_upload().' bytes).';
break;
case UPLOAD_ERR_PARTIAL:
$message .= ' - file upload was not completed.';
break;
case UPLOAD_ERR_NO_FILE:
$message .= ' - zero-length file uploaded.';
break;
default:
$message .= ' - internal error #'.$_FILES['newfile']['error'];
break;
}
if( !$message ) {
if( !is_uploaded_file($_FILES['newfile']['tmp_name']) ) {
$message = 'Error uploading file - unknown error.';
} else {
// Let's see if we can move the file...
$dest .= '/'.$this_file;
if( !move_uploaded_file($_FILES['newfile']['tmp_name'], $dest) ) { // No error supporession so we can see the underlying error.
$message = 'Error uploading file - could not save upload (this will probably be a permissions problem in '.$dest.')';
} else {
$message = 'File uploaded okay.';
}
}
}
为了扩展现有字段,您必须将内置字段(例如FieldTextInput,FieldColour)子类化,然后修改其中的一部分以满足您的需求。 您可以修改的字段的某些部分是: 它的编辑器 它的块显示 它显示的文本 如果要创建不需要任何内置字段行为的自定义字段,则应将Field子类化。 常用扩展 大多数自定义字段扩展了以下三种类型之一: 文本输入 如果希望用户在字段中键入内容,则应扩展FieldText
问题内容: 为了帮助实现这一点,下面的代码在文件夹中查找txt文件,以及如何使其列出不含扩展名的文件名。这是代码: 如您所见,就在这里: 这是将文件列表与myname的值进行比较,因此您可以帮助比较表和myName和list [i](不考虑文件扩展名)的情况,例如程序显示该文件夹具有以下布局: indeks.html hi.html,用户输入了indeks.html,比较不错,但是如何创建一个代码
在我的公司,我们的任务是实现一个可自动扩展的文本字段。由于默认情况下不提供此功能,我们必须从头开始开发它。web上有许多可能性,如何实现它,但没有人为as工作,所以我们决定将代码放在so上,以便其他开发人员也可以使用它。由于无法展开文本字段,因此解决方案基于文本区域: 我希望它能帮助你:)
问题内容: 我正在将图像上传到servlet。通过检查文件头中的幻数,仅在服务器端验证上传的文件是否为图像。在将表单提交给Servlet之前,有什么方法可以在客户端验证扩展?我一按回车就开始上传。 我在客户端使用Javascript和jQuery。 更新: 我最终通过服务器端验证结束了工作,该验证读取字节,如果不是图像,则拒绝上传。 问题答案: 可以仅检查文件扩展名,但是用户可以轻松地将virus
场景:我有一个jasper报告,在详细信息带内有多个文本字段。每个文本字段都具有以下属性: 位置:浮动 伸展类型:相对于最高对象 详细信息溢出时打印:false 溢出伸展:true null 问题:我希望所有的文本字段能够延伸在下一页以及。如果我使用属性'print When Detail overflows:true',那么这将导致文本字段“重印”,数据重复。那不是我的本意。我希望能够将文本字段
我不明白为什么我应用程序会删除异常“字段'ID_Employeer'没有默认值”。 是我的主键,当我试图将任何信息保存到我的数据库时,我得到了这个异常,但是,当我只是试图从DB读取信息时,它是正常的。 我读了关于StackOverflow的主题,但我仍然不明白我应用程序中的答案。我正在使用Hibernate5.2.11。 我的: 我的冬眠: 下一个CharacterInfo类 主类 最后例外