0
Q
如何在外部網站
A
回答
0
您可以嘗試通過curl提交文件。
$file_name_with_full_path = realpath('./sample.jpeg');
$post = array('extra_info' => '123456','file_contents'=>'@'.$file_name_with_full_path);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
並登錄到特定的網站,並保持Cookie,可以使一個類似的功能:
public static function curlResult ($url, $getHeaders = false, $data) {
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEJAR => dirname(__FILE__) . '/cookie.txt',
CURLOPT_COOKIEFILE => dirname(__FILE__) . '/cookie.txt'
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
if ($data != false) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POST, $data?1:0);
}
$content = curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
if ($getHeaders) {
return $header;
}
return $content;
}
然後使用功能類似:
// Login
curlResult('urltologin', false, array('username' => 'test', 'password' => 'demo');
// Upload
curlResult('urltoupload', false, array(file_contents'=>'@'.$file_name_with_full_path));
0
另外,您可以使用Selenium(通過他們自己的Java Client):
取自here:
import junit.framework.Assert;
import junit.framework.TestCase;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.*;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class TestingUploadSe2Sauce extends TestCase {
private RemoteWebDriver driver;
public void setUp() throws Exception {
DesiredCapabilities capabillities = DesiredCapabilities.firefox();
capabillities.setCapability("version", "7");
capabillities.setCapability("platform", Platform.XP);
capabillities.setCapability("selenium-version", "2.18.0");
capabillities.setCapability("name", "Remote File Upload using Selenium 2's FileDetectors");
driver = new RemoteWebDriver(
new URL("http://<username>:<api-key>@ondemand.saucelabs.com:80/wd/hub"),
capabillities);
driver.setFileDetector(new LocalFileDetector());
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
public void testSauce() throws Exception {
driver.get("http://sso.dev.saucelabs.com/test/guinea-file-upload");
WebElement upload = driver.findElement(By.id("myfile"));
upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg");
driver.findElement(By.id("submit")).click();
driver.findElement(By.tagName("img"));
Assert.assertEquals("darkbulb.jpg (image/jpeg)", driver.findElement(By.tagName("p")).getText());
}
public void tearDown() throws Exception {
driver.quit();
}
}
相關問題
- 1. 如何在外部網站
- 2. 在外部網站
- 3. 如何在asp.net網站域下顯示外部WordPress網站
- 4. phpbb navbar在外部網站
- 5. 從外部網站
- 6. 從外部網站
- 7. 從外部網站
- 8. 從外部網站
- 9. 與外部網站
- 10. 如何從外部登錄到網站?
- 11. 如何從外部網站獲取cookie?
- 12. 如何嵌入iFrame與外部網站
- 13. 如何從外部網站加載DIV?
- 14. 無論如何保護您的網站從外部網站scandir
- 15. 外部網站複製(捲曲)網站,如何重定向
- 16. 嵌入外部網站
- 17. trigger.io - 嵌入外部網站
- 18. Lucene.NET和外部網站
- 19. PHP得到外部網站
- 20. 外部看不到網站
- 21. 從社會外部網站
- 22. 網站的外部菜單
- 23. Django網站外部訪問
- 24. 解析外部網站表
- 25. iframe和外部網站
- 26. 開始外部網站以 「//」
- 27. iframe到外部網站
- 28. 從外部網站驗證
- 29. 幫助與外部網站
- 30. 如何在其他公共網站上拉外部網站的URL?