У меня есть файл php на моем сервере для загрузки файла. Я попытался загрузить этот файл напрямую, и это было успешным.Не удается загрузить с помощью PhantomJS
Затем я написал простой скрипт phantomjs, запустил его на ubuntu с phantomjs версии 2.1.1, но это не успех. Ошибка не отображалась, но файл не загружался.
Ниже PHP файл:
<?php
if(isset($_FILES["files"]))
{
$files = $_FILES["files"];
if($files["name"] != '')
{
$fullpath = "./".$files["name"];
if(move_uploaded_file($files['tmp_name'],$fullpath))
{
echo "<h1><a href='$fullpath'>OK-Click here!</a></h1>";
}
}
echo '<html><head><title>Upload files...</title></head><body><form method=POST enctype="multipart/form-data" action=""><input type="file" name="files"><input type="submit" value="Upload"></form></body></html>';
return;
}
?>
И простой phantomjs скрипт для загрузки файла
var webPage = require('webpage');
var page = webPage.create();
var testindex = 0, loadInProgress = false;
page.onLoadStarted = function() {
loadInProgress = true;
console.log("load started");
};
page.onLoadFinished = function() {
loadInProgress = false;
console.log("load finished");
};
function load()
{
page.open("http://myserver.com/upload.php?cmd=upload")
}
function upload()
{
page.uploadFile('input[name=files]', '/home/user/Desktop/log_no_debug.png');
page.render("result.png")
}
var steps = [
load,
upload
]
interval = setInterval(function() {
if (!loadInProgress && typeof steps[testindex] == "function") {
//console.log("step " + (testindex + 1));
steps[testindex]();
testindex++;
}
if (typeof steps[testindex] != "function") {
//console.log("test complete!");
phantom.exit();
}
}, 50);
Ниже result.png вынесено из upload.js сценария
ohh теперь это 'ы хороший улов :) – fsn
О, это сработало. Я работал в качестве учебников в Интернете, но никогда не знал, что нам нужно отправить форму. Спасибо за вашу помощь – Rain