RTF dosyası PHP upload ve UTF ile ilgili sorunlar

2 Cevap php

Ben kullanıcı UTF-8 PHP kullanarak yabancı dil içeriğine sahip metin / rtf dosya upload ve daha sonra exec () fonksiyonu aracılığı komutlar bir dizi yürütmesine olanak sağlayacak bir web formu oluşturmak istiyorum. Bu işleme sonra bir yükleme olarak kullanıcıya geri vermek olacaktır.

Ben bir dosya giriş formu ile html ilkel formu yaptı ve gönder düğmesine. ve PHP yan aşağıdaki içeriği vardır.

$base_dir = './uploads';
$cmd = "mkdir -p ".$base_dir.' ; mv -v '.$_FILES['file']['tmp_name'].'$_/'.$_FILES['file']['name'].' ; /var/www/cgi-bin/test.awk'.'/var/www/html/uploads/'.$_FILES['file']['name'].'>'.'/var/www/html/uploads/'.$_FILES['file']['name'];
exec($cmd);
print '<a href="http://oceanfizz.usc.edu/uploads/'.$_FILES['file']['name'].'">download file </a>';

Ama sorun yüklenen rtf dosyaları metin gibi başlıca değişiklikler var gibi görünüyor olduğunu

so "é benzeri \ 8'e abd oldu.

Ben bu kodlama ile ilgili bir sorun olduğunu düşünüyorum

Birisi kodlama ve içeriği koruyarak aynı zamanda tarayıcı üzerinden geri işlenen dosyaları bir sunucuya dosya yüklemek ve almak için hızlı ve kolay bir yol önerebilir.

2 Cevap

Unix dahili hareket komutu ile dosya taşıma gerçekten zeki değil. Yerine php yükleme işlevini kullanın.

Lütfen kodlama sorunu için önce, tefrika ile yüklenen dosyanın içeriğini seri olabilir (); ve kullanıcı isterse onu unserialize. Bu internet boyunca dosyalarını taşımak için en iyi yoldur.

Biz kesin olarak söylemek için veri göndermek için formu kullanarak kod görmem gerekiyor. Streetparade dediği gibi - Eğer dosyayı taşımak için () move_uploaded_file kullanmalısınız - mv değil.

Özellikle onun bir Unix sunucusu olarak, sunucuya var kez Ancak, bunu değiştirmek için sistemin gerek ne de bir yolu var.

Eğer bu değişti derken, neden böyle düşünüyorsunuz? Ben olmayan bir utf8 editörü ile dosyayı ulaşıyor ki onun çok daha büyük olasılıkla düşündüğünüz ya da yanlış kodlama türü ile indirdiğiniz.

Böyle bir şey deneyin:

 <?php 
 move_uploaded_file($_FILES['userfile']['tmp_name'], 'uploads/temp/test.txt');
 header('Content-type: text/plain; charset=utf-8');

 print file_get_contents('uploads/test.txt');

 ?>