2015-12-28 12 views
5

Mam problem, że używam funkcji move_uploaded_file() do przesyłania plików i niektórych plików nazwanych w języku arabskim, więc szukałem w Google problemu, ale wciąż brak odpowiedzi Użyłem metatagu i użyłem kodowania Base64 i wszystkiego oprócz wciąż nie działa. Jakie jest rozwiązanie?Funkcja move_uploaded_file w PHP

<?php 
    $data_name=$_POST['name']; 
    $name=base64_encode($_FILES['file']['name']); 
    $location="../Files/".$course_name."/"; 
    $tmp_name=$_FILES['file']['tmp_name']; 
    if(move_uploaded_file($tmp_name, $location.$name)) 
     echo"OK"; 
?> 
+2

Dodaj zgłaszanie błędów na górę pliku (plików) zaraz po twoim otwierającym tagu PHP na przykład '

+0

Czy ważne jest, aby plik, który jest przesyłany, zachował tę samą nazwę lub czy można go zmienić? – RamRaider

+0

nie ma problemu, ale dlaczego nie możemy przesłać nazwy pliku po arabsku? –

Odpowiedz

2

Jednym z rozwiązań może być:

bazę danych, gdzie zapisać arabską nazwę pliku i dać ten plik jakiś zwyczaj unikalną nazwę z aktualnym czasie, również zapisać niestandardowy nazwę na db, w momencie retreival zmian nazwa pliku i pokaż użytkownikowi.

LUB użyj jakiejś biblioteki konwersji nazw, która konwertuje tekst z arabskiego na englidh i odwrotnie. w tym celu spojrzeć na te refferences

how to convert english into arabic dynamically

convert Persian/Arabic numbers to English numbers

lub przekonwertować ciąg znaków w UTF-8 za pomocą php za pomocą:

PHP: Convert any string to UTF-8 without knowing the original character set, or at least try

http://php.net/manual/en/function.utf8-encode.php

+0

Masz na myśli, że po prostu nie można manipulować nazwami plików znakami arabskimi w PHP? –

+0

możliwe tylko wtedy, gdy serwer obsługuje tekst arabski –