move_uploaded_file () açamıyor akışı

0 Cevap

Ben alıcı ucunda bir PHP komut dosyası kullanarak, POST aracılığıyla pycurl üzerinden dosya yüklemeye çalışıyorum. Nedense PHP bölümü bir hataya neden gibi görünüyor. Ben iki kısa test komut aşağı distile ettik.

import pycurl

UPLOADURL = "http://127.0.0.1/~nevon/receive.php" #URL to the PHP script
PATH = "/home/nevon/Desktop/testfile" #path to the file I'm trying to upload

c = pycurl.Curl()
c.setopt(c.POST, 1)
c.setopt(c.URL, UPLOADURL)
c.setopt( c.HTTPPOST, [("uploaded", (c.FORM_FILE, PATH))] )
c.perform()
c.close()

receive.php:

<?php 
ini_set('display_errors','On');
$target = getcwd()."/upload/"; 
$target = $target . basename( $_FILES['uploaded']['name']) ; $ok=1; 

if (move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) { 
    echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
    } else { 
    echo "Something went wrong."; 
    } 
?>

Bu test ederken ben alıyorum hataları şunlardır:

Warning: move_uploaded_file(/home/nevon/public_html/upload/testfile): failed to open stream: No such file or directory in /home/nevon/public_html/receive.php on line 7

Warning: move_uploaded_file(): Unable to move '/tmp/phpevKFCC' to '/home/nevon/public_html/upload/testfile' in /home/nevon/public_html/receive.php on line 7

Bu izinler sorun gibi görünmüyor, ama yine de ben yükleme dizinine ve / tmp hem izinleri kontrol ettik. Bu open_basedir kısıtlama ile ilgili bir sorun değil ki ben de kontrol ettim.

Move_uploaded_file üzerinde PHP kılavuzunda () o şöyle diyor:

move_uploaded_file () PHP ile yüklenen yalnızca bu dosyalar taşınacak izin vererek bu işlemin güvenliğini sağlar.

Ben Curl ile Python ile yolluyorum, çünkü ben bu sorun olabilir düşündüm. Ama bu durum olsaydı farklı bir hata iletisi olması gerekiyordu değil mi? If that is indeed the problem, what could I do instead? Ben şimdi gerçekten yıllardır çok PHP kullanmadıysanız, bu yüzden biraz paslı olduğumu söyleyebiliriz.

Ben alakalı eğer emin değilim, ama sadece durumda, ben apache 2.2.16, PHP 5.3.3 ve Python 2.6.6 ile Ubuntu 10.10 Bu test ediyorum.

EDIT: arsa kalınlaşır! Twitter'da bir kişi benim PHP komut dosyası aldı ve o sorunun ne olduğunu öğrenmek olabilir, görmek için, onun sunucusundan koydu. Düzenli bir PHP / HTML formu yükleyerek zaman, onun için para cezası çalıştı. Yani onun PHP script benim Python komut sivri ve aniden gayet güzel çalıştı. Şimdi ben merak ediyorum, ne ... benim ucunda yanlış? Bunu nasıl giderebilirim?

0 Cevap