图片上传PHP仅适用于某些图片
我正在尝试制作一个简单的上传表单,将图片上传到本地服务器, 它实际上可以工作,但问题是有些图片(JPG类型)无法读取。 我不知道是什么问题 处理表格的代码:图片上传PHP仅适用于某些图片,php,image,upload,Php,Image,Upload,我正在尝试制作一个简单的上传表单,将图片上传到本地服务器, 它实际上可以工作,但问题是有些图片(JPG类型)无法读取。 我不知道是什么问题 处理表格的代码: <form id="addPTK" method="post" action="scripts/php/addPTK.php" enctype="multipart/form-data"> <table cellpadding=&quo
<form id="addPTK" method="post" action="scripts/php/addPTK.php" enctype="multipart/form-data">
<table cellpadding="3px">
<tr>
<td>
<div style="margin-bottom:10px;">
<img id="noPic" src="images/contains/no-pic.jpg" style="width:148px;height:188px;border:2px solid #000" ><br>
<input type="file" name="picPTK" style="width:55%" onchange="readURL(this)" />
<script type="text/javascript">
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#noPic').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
</div>
</td>
</tr>
</table>
</form>
它显示了成功
Pic Name : 3dpencil10.jpg
Pic Type : image/jpeg
Pic Temp : C:\xampp\tmp\phpFBAD.tmp
Pic Size : 101632
Error file (var_dump) : int(0) << error shows (0) (i think it means (false)
Pic名称:3dpencil10.jpg
图片类型:图像/jpeg
Pic Temp:C:\xampp\tmp\phpFBAD.tmp
图片尺寸:101632
错误文件(var_dump):int(0),除非您有其他代码
$ftExt = array('jpeg', 'jpg', 'png');
请记住,如果没有strtolower文本
.JPG与.JPG不同
您可以使用不同的方法,如1:
$ftExt = array('jpeg', 'jpg', 'png', 'JPG');
或者降低文件名可能是因为文件大小
您可以尝试在php.ini中设置以下值
upload_max_filesize = 10M
post_max_size = 10M
你能给我们发送未上传图像的特征(文件大小、文件名)吗
正如其他人指出的,扩展验证可能是问题的原因,您可以通过这种方式轻松解决:
in_array(strtolower($ext), $ftExt)
但文件大小也可能是一个问题,因为在大多数系统上(共享主机计划非常典型),文件大小的最大限制为2M(这就是为什么你经常看到网站限制你可以上传的图像大小)
如果我记得清楚的话,$\u FILES数组包含一个错误索引,因此请尝试执行以下操作:
print_r($_FILES)
并为我们提供未上传图像的结果。你好,马可,谢谢回答。我尝试了这两种,但它仍然没有显示类型,但图像上传正确吗?你能给我们看一下上传代码吗?我已经添加了我使用的整个脚本,不介意文件名,因为我之前使用的那个只是在Michael建议之后,最后检查您是否限制了最大上载大小以及一次可以上载多少文件,然后将$\u POST
值设置到$\u SESSION
数组中,以便稍后清除它们?不,我没有,我这样做是因为进程脚本位于不同的文件中,当它显示错误时,textbox或其他的值将消失,所以我使用session来保持它有点棘手。这只是因为我不知道如何保持它使用另一种方式你只需执行$\u session['post\u data']=$\u post
就可以节省很多,我认为问题不是由大小引起的,因为错误是“header”('Location:..//dashboard.php?panel=ptk&warn=12');”,这意味着文件的类型不是图片类型数组([fotoPTK]=>Array([name]=>IMG_0668.JPG[type]=>[tmp_name]=>[error]=>1[size]=>0))这是我打印时得到的,我也已经像Michael说的那样设置了我的php.ini。然后,使用此链接匹配相应的错误(如果无法修复错误,请向用户打印适当的消息)。在您的情况下,这确实是一个文件大小的问题。那么您的意思是我需要更改我的php.ini吗?这是我的php.ini;上传文件的最大允许大小。。upload_max_filesize=10M;通过单个请求可以上传的最大文件数max_file_uploads=20,我的图片文件只有大约3.5 MB。。hmmm常见的托管类型是什么n您是专用的还是共享的?如果您是专用的,那么更改php.ini并重新启动apache服务就足够了。在共享计划中,有时您根本无法修改php.ini。您应该查看主机的常见问题解答。将来?此网站将只在内部网中运行…我将首先尝试重新启动我的xampp。。
<?php
/**
* ========= CREDIT GOES TO :==============
* Author : Ardian Septiadi AR a.k.a Refs
* Name : addPTK.php
* Version : V.01
* =======================================
*/
session_start();
if((isset($_SESSION['usercode'])) && (!empty($_SESSION['usercode']))){
try{
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'class.Table.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'fungsi.php';
// Manipulasi SESSION
$_SESSION['nik'] = trim($_POST['nik']);
$_SESSION['namaPTK'] = trim($_POST['namaPTK']);
$_SESSION['jkPTK'] = trim($_POST['jkPTK']);
$_SESSION['unitPTK'] = trim($_POST['unitPTK']);
$_SESSION['jabatan'] = trim($_POST['jabatan']);
$_SESSION['alamatPTK'] = trim($_POST['alamatPTK']);
$_SESSION['pdkTerakhir'] = trim($_POST['pdkTerakhir']);
$_SESSION['gelar'] = trim($_POST['gelar']);
$_SESSION['kawin'] = trim($_POST['kawin']);
//Rubah Telp
$telpPtk = noTelp(trim($_POST['telpPtk']));
$_SESSION['telpPtk'] = $telpPtk;
//Rubah Tgl Lahir
$tglLahir = rubahTgl(trim($_POST['tglLahir']));
$_SESSION['tglLahir'] = $tglLahir;
//Username
if(isset($_POST['hakAkses']) && $_POST['hakAkses'] == 1){
$_SESSION['hakAkses'] = $_POST['hakAkses'];
}
// Batas
// Untuk Data Pribadi
$objAddPtk = new Table('PTK');
// Variabel Foto
$nmFoto = $_FILES['fotoPTK']['name'];
$tyFoto = $_FILES['fotoPTK']['type'];
$szFoto = $_FILES['fotoPTK']['size'];
$erFile = $_FILES['fotoPTK']['error'];
$temp = $_FILES['fotoPTK']['tmp_name'];
$tyFoto = $_FILES['fotoPTK']['type'];
$dir = '../../images/ptk/';
$ftExt = array('jpeg', 'jpg', 'png' , 'JPEG', 'JPG', 'PNG');
$ftTemp = explode('.' , $nmFoto);
$ext = end($ftTemp);
// Proses Connect
if ($objAddPtk->connect()) {
if($nmFoto==''
OR $_POST['nik']==''
OR $_POST['namaPTK']==''
OR $_POST['jkPTK']==''
OR $_POST['unitPTK']==''
OR $_POST['jabatan']==''
OR $_POST['tglLahir']==''
OR $_POST['telpPtk']==''
OR $_POST['alamatPTK']==''
OR $_POST['pdkTerakhir']==''
OR $_POST['gelar']==''
OR $_POST['kawin']==''){
header('Location: ../../dashboard.php?panel=ptk&warn=1');
}elseif(!preg_match("#[0-9]+#", $_POST['nik'])){
header('Location: ../../dashboard.php?panel=ptk&warn=8');
}elseif(!preg_match("#[0-9]+#", $_POST['telpPtk'])){
header('Location: ../../dashboard.php?panel=ptk&warn=9');
}else{
// Upload Foto
if((($tyFoto=='image/jpeg')
|| ($tyFoto=='image/jpg')
|| ($tyFoto=='image/pjpg')
|| ($tyFoto=='image/x-png')
|| ($tyFoto=='image/png')
|| ($tyFoto=='IMAGE/JPG')
|| ($tyFoto=='IMAGE/PJPG')
|| ($tyFoto=='IMAGE/X-PNG')
|| ($tyFoto=='IMAGE/PNG'))
&& ($szFoto < 5000000)
&& in_array($ext, $ftExt))
{
// Set nama baru foto
$fileBaru = $_SESSION['namaPTK'].'-'.$_SESSION['nik'].'.'.$ext;
// Kondisi penyimpanan Data
if($erFile > 0){
header('Location: ../../dashboard.php?panel=ptk&warn=10');
}else{
if(file_exists($dir.$fileBaru)){
header('Location: ../../dashboard.php?panel=ptk&warn=11');
}elseif(isset($_SESSION['hakAkses']) && !empty($_SESSION['hakAkses'])){
// Manipulasi Username
$username = explode(' ', $_POST['namaPTK'], 3);
$rand = rand(1111, 9999);
$user = $username[0].$_POST['unitPTK'].$rand;
// Batas
$savePtk = $objAddPtk->save(array(
'NIK' => $_SESSION['nik'],
'PIC_PTK' => trim($fileBaru),
'NM_PTK' => $_SESSION['namaPTK'],
'JK_PTK' => $_SESSION['jkPTK'],
'POSISI' => $_SESSION['unitPTK'],
'JABATAN' => $_SESSION['jabatan'],
'TGLLAHIR_PTK' => trim($_SESSION['tglLahir']),
'NOTLP_PTK' => trim($_SESSION['telpPtk']),
'ALAMAT_PTK' => trim($_SESSION['alamatPTK']),
'STATUS_PTK' => $_SESSION['statusKaryawan'],
'TMT' => $_SESSION['TMT'],
'AKHIR_PROBATION' => $_SESSION['akhirProbation'],
'STATUS_KAWIN' => $_SESSION['kawin'],
'PDK_TERKAHIR' => $_SESSION['pdkTerakhir'],
'GELAR_AKADEMIK' => $_SESSION['gelar'],
'TGL_REGISTRASI' => date('Y-m-d'),
'USERNAME' => trim($user),
'PASSWORD' => md5(trim($user)),
'LEVEL_AKSES' => 'Operator',
));
move_uploaded_file($temp,$dir.$fileBaru);
// Manipulasi SESSION
$_SESSION['nik'] = '';
$_SESSION['namaPTK'] = '';
$_SESSION['jkPTK'] = '';
$_SESSION['unitPTK'] = '';
$_SESSION['jabatan'] = '';
$_SESSION['tglLahir'] = '';
$_SESSION['telpPtk'] = '';
$_SESSION['alamatPTK'] = '';
$_SESSION['statusKaryawan'] = '';
$_SESSION['TMT'] = '';
$_SESSION['akhirProbation'] = '';
$_SESSION['kawin'] = '';
$_SESSION['pdkTerakhir'] = '';
$_SESSION['gelar'] = '';
// Batas
header('Location: ../../save_success.php');
}else{
$savePtk = $objAddPtk->save(array(
'NIK' => $_SESSION['nik'],
'PIC_PTK' => trim($fileBaru),
'NM_PTK' => $_SESSION['namaPTK'],
'JK_PTK' => $_SESSION['jkPTK'],
'POSISI' => $_SESSION['unitPTK'],
'JABATAN' => $_SESSION['jabatan'],
'TGLLAHIR_PTK' => trim($_SESSION['tglLahir']),
'NOTLP_PTK' => trim($_SESSION['telpPtk']),
'ALAMAT_PTK' => trim($_SESSION['alamatPTK']),
'STATUS_PTK' => $_SESSION['statusKaryawan'],
'TMT' => $_SESSION['TMT'],
'AKHIR_PROBATION' => $_SESSION['akhirProbation'],
'STATUS_KAWIN' => $_SESSION['kawin'],
'PDK_TERKAHIR' => $_SESSION['pdkTerakhir'],
'GELAR_AKADEMIK' => $_SESSION['gelar'],
'TGL_REGISTRASI' => date('Y-m-d'),
));
move_uploaded_file($temp,$dir.$fileBaru);
// Manipulasi SESSION
$_SESSION['nik'] = '';
$_SESSION['namaPTK'] = '';
$_SESSION['jkPTK'] = '';
$_SESSION['unitPTK'] = '';
$_SESSION['jabatan'] = '';
$_SESSION['tglLahir'] = '';
$_SESSION['telpPtk'] = '';
$_SESSION['alamatPTK'] = '';
$_SESSION['statusKaryawan'] = '';
$_SESSION['TMT'] = '';
$_SESSION['akhirProbation'] = '';
$_SESSION['kawin'] = '';
$_SESSION['pdkTerakhir'] = '';
$_SESSION['gelar'] = '';
// Batas
header('Location: ../../save_success.php');
}
}
}else{
header('Location: ../../dashboard.php?panel=ptk&warn=12');
}
}
}
}catch(Exception $e){
echo 'Error: '.$e->getMessage();
}
}else{
header('Location: ../../index.php');
}
$ftExt = array('jpeg', 'jpg', 'png');
$ftExt = array('jpeg', 'jpg', 'png', 'JPG');
upload_max_filesize = 10M
post_max_size = 10M
in_array(strtolower($ext), $ftExt)
print_r($_FILES)