У меня проблема с функцией move_uploaded_file
.PHP - Move_uploaded_file перемещать файл с символами unintelligible
Проблема в том, что я загружаю арабский файл своими шоу с символами неразборчивыми.
взгляд на картине
У меня проблема с функцией move_uploaded_file
.PHP - Move_uploaded_file перемещать файл с символами unintelligible
Проблема в том, что я загружаю арабский файл своими шоу с символами неразборчивыми.
взгляд на картине
Не 100% уверен в этом, но вы пробовали кодирующее имя файла, когда вы получите строку из массива FILES?
http://php.net/manual/en/ref.url.php
К счастью, есть библиотеки, чтобы решить эту проблему, как ar-php
<?php
set_time_limit(0);
require("connect.php");
include 'Arabic.php';
$arabic = new I18N_Arabic('Transliteration');
if (isset($_FILES['upload_file'])) {
foreach ($_FILES['upload_file']['tmp_name'] as $count => $upload_file) {
if (!empty($_FILES['image']['error'][$count])) {
// Some error occured with the file in index $count
// Put some error handling in here...
return false; // or you could continue;
}
if (!empty($upload_file) && is_uploaded_file($upload_file)) {
$charset = "AHfgG15Ds10MZD58N";
$code = '';
$length = 15;
for ($i = 0; $i <= $length; $i++) {
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
mysql_query("SET NAMES utf8");
$query = mysql_query("SELECT `code` FROM `files` WHERE `code`='$code'") or die(mysql_error());
$numrows = mysql_num_rows($query);
while ($numrows != 0) {
$code = '';
for ($i = 0; $i <= $length; $i++) {
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
$query = mysql_query("SELECT `code` FROM `files` WHERE `code`='$code'");
$numrows = mysql_num_rows($query);
}
$types = array('jpg', 'jpeg', 'gif', 'png', 'zip', 'rar', 'mp3', 'm4a', 'wmv', 'divx', 'mp4',
'flv', 'FLV', 'dvd', 'mkv', 'bmp', 'xml', 'doc', 'pdf', 'xls', 'psd', 'svg',
'3gp', 'ppt', 'txt', 'exe', 'mpeg', 'dvdrip');
$names = pathinfo($_FILES['upload_file']['name'][$count]);
if (in_array($names['extension'], $types)) {
mkdir("upload/$code/");
$name = trim($arabic->ar2en($_FILES["upload_file"]["name"][$count]));
$type = $_FILES["upload_file"]["type"][$count];
$size = $_FILES["upload_file"]["size"][$count];
$tmp_name = $_FILES["upload_file"]["tmp_name"][$count];
if ($size < 600000000) {
$site_url = ('http://localhost');
$url = ("$site_url/download.php?file=$code");
mysql_query("SET NAMES utf8");
$query = mysql_query("INSERT INTO files VALUES ('Null','$name','$code','$type','$size','$url')");
$url = urlencode($name);
if ($upload = move_uploaded_file($upload_file, "upload/$code/" . $name)) {
if ($upload) {
?>
<table>
<tr>
<td><h3>File name</h3></td>
<td><h3>File Link</h3></td>
<td><h3>File Type</h3></td>
</tr>
<tr>
<td><?php echo "$name"; ?></td>
<td>
<?php echo "<a href='http://localhost/downoald.php?file=$code' target='_blanck'>File Link</a>"; ?>
</td>
<td><?php print_r($names['extension']); ?></td>
</tr>
</table>
<?php } else { ?>
No file selected
<?php
}
} else {
echo "A problem occurred while uploading your file(s), please try again.";
}
} else {
echo "This file(s) is up to 1GB<br>";
}
} else {
echo "Type of the file not allowed";
}
} else {
echo "this error is fan";
}
}
}
?>
Спасибо @meda это мой код, пожалуйста
Сложение Роде, которые были посланы мне
<?php
set_time_limit(0);
require("connect.php");
if (isset($_FILES['upload_file'])) {
foreach ($_FILES['upload_file']['tmp_name'] as $count=>$upload_file) {
if (!empty($_FILES['image']['error'][$count])) {
// Some error occured with the file in index $count
// Put some error handling in here...
return false; // or you could continue;
}
if (!empty($upload_file)&&is_uploaded_file($upload_file)) {
$charset="AHfgG15Ds10MZD58N";
$code='';
$length=15;
for ($i=0; $i<=$length; $i++) {
$rand=rand()%strlen($charset);
$tmp=substr($charset,$rand,1);
$code.=$tmp;
}
mysql_query("SET NAMES utf8");
$query=mysql_query("SELECT `code` FROM `files` WHERE `code`='$code'") or die(mysql_error());
$numrows=mysql_num_rows($query);
while ($numrows!=0) {
$code='';
for ($i=0; $i<=$length; $i++) {
$rand=rand()%strlen($charset);
$tmp=substr($charset,$rand,1);
$code.=$tmp;
}
$query=mysql_query("SELECT `code` FROM `files` WHERE `code`='$code'");
$numrows=mysql_num_rows($query);
}
$types = array('jpg','jpeg','gif','png','zip','rar','mp3','m4a','wmv','divx','mp4','flv','FLV','dvd','mkv','bmp','xml','doc','pdf','xls','psd','svg','3gp','ppt','txt','exe','mpeg','dvdrip');
$names = pathinfo($_FILES['upload_file']['name'][$count]);
if (in_array($names['extension'],$types)) {
mkdir("upload/$code/");
$name=$_FILES["upload_file"]["name"][$count];
$type=$_FILES["upload_file"]["type"][$count];
$size=$_FILES["upload_file"]["size"][$count];
$tmp_name=$_FILES["upload_file"]["tmp_name"][$count];
if ($size < 600000000)
{
$site_url=('http://localhost');
$url= ("$site_url/download.php?file=$code");
mysql_query("SET NAMES utf8");
$query=mysql_query("INSERT INTO files VALUES ('Null','$name','$code','$type','$size','$url')");
$url=urlencode($name);
if($upload = move_uploaded_file($upload_file ,"upload/$code/".$name))
{
if ($upload) { ?>
<table>
<tr>
<td><h3>File name</h3></td><td><h3>File Link</h3></td><td><h3>File Type</h3></td>
</tr>
<tr>
<td><?php echo"$name"; ?></td><td> <?php echo"<a href='http://localhost/downoald.php?file=$code' target='_blanck'>File Link</a>"; ?></td><td><?php print_r ($names['extension']); ?></td>
</tr>
</table>
<?php } else { ?>
No file selected
<?php }
}else{
echo "A problem occurred while uploading your file(s), please try again.";
}
}else{
echo "This file(s) is up to 1GB<br>";
}
}else{
echo "Type of the file not allowed";
}
}else{
echo "this error is fan";
}
}
}
?>
Вы должны использовать кнопку ответов только для публикации ответов, но что не так с этим кодом – meda
, пожалуйста, отредактировал мой код. моя проблема - файлы (арабские) сохранить в базе данных и перемещаться в папку с символами-непонятно –
Вам нужно реализовать код, который я вам дал, и вы должны сказать мне, что пошло не так, если вы столкнулись с проблемой – meda
Показать код будет хорошим. Кроме того, если вы не можете найти решение проблемы, вы всегда можете переименовать свои файлы в числовой формат. Однако у вас есть проблема с кодировкой. –
Попытайтесь с http://www.php.net/setlocale – Cheery