PHP Arkaplan yükleme

5 Cevap php

I am working with a form that allows me to upload files via a local folder and FTP. So I want to move files over ftp (which already works)

Çünkü arka planda çalıştırmak için bu süreci seçti performans nedenlerinden yüzden nfcftpput kullanın (linux)

In CLI the following command works perfectly: ncftpput-b-u name -p password -P 1980 127.0.0.1 /upload/ /home/Downloads/upload.zip

(Knowing that the b-parameter triggers background process) But if I run it via PHP it does not work (without the-b parameter it does)

PHP kodu:

$cmd = "ncftpput -b -u name -p password -P 1980 127.0.0.1 /upload/ /home/Downloads/upload.zip";
$return = exec($cmd);

5 Cevap

Aşağıdakilerden birini deneyin:

1) Use the command $cmd = "ncftpput -b -u name -p password -P 1980 127.0.0.1 /upload/ /home/Downloads/upload.zip &"; (Notice the &)

2) php proc_open fonksiyonu deneyin http://php.net/manual/en/function.proc-open.php

Deneyin ekleyerek '&' komutun sonunda, bu linux seviyede bunu ödemek olacaktır. Ayrıca shell_exec deneyin (), önceki çalışmaz eğer.

* Nix platformlarında da arka planda bir süreci başlatmak ve & operatörü ve çıkış yönlendirme kullanarak php denetimi dönmek mümkündür. I ettik described it in this article.

pcntl_fork bir göz atın. Bu user note düzgün bir arka plan işlemi yumurtlamaya nasıl bilgi var. Bu işlevi sağlayan uzatma PHP kurulumunda aktif olmayabilir unutmayın.

Benim için en iyi çalışma çözüm aşağıdaki kodu:

function executeBackgroundProces($command) {

    $command = $command . ' > /dev/null 2>&1 & echo $!';
    exec ( $command, $op );
    $pid = ( int ) $op [0];
    if ($pid != "")
        return $pid;

    return false;
}

The command I run is: "ls bashfile" The bash file contains commands like the upload and deletion of the original files separated by ; This works fine by me