❶ php如何一次下載多個文件
這個要利用javascript技巧才行,單獨的PHP是無法實現的,經過我的測試,下面的代碼可以實現同時下載多版個文件權:
<script language=javascript>
var urls=new Array('result.xls','201110x.rar','a.exe');
for (i in urls) document.write('<a id="d'+i+'" href="'+urls[i]+'" target=_blank>x</a>');
for (i in urls) document.getElementById('d'+i).click();
</script>
你PHP程序輸出這樣的代碼就可以,主要是用for循環生成第二行urls數組的定義。
❷ 怎樣批量下載html代碼裡面的圖片 html不是在線的,本地文件
從html文件中下載圖片,又不要在線下載,這怎麼可能,html只是標記語言,文件都還在網上呢!
❸ 下載文件的代碼
用MFC的CInternetFile,CInternetSession,CHttpConnection等類,已知伺服器名及文件路徑,代碼越簡單越好。
以下是代碼片段:
//Download http file through proxy
//--------------------------------------------------------------------------------
We can find details about Proxy Authentication and Sever Authentication methed in MSDN.
Just search for the keyword "INTERNET_OPTION_USERNAME".
Here I give a very simple example. It works in my project.
CString GeHttptFile(const char *url)
{
CString szContent;
char strProxyList[MAX_PATH], strUsername[64], strPassword[64];
//in this case "proxya" is the proxy server name, "8080" is its port
strcpy(strProxyList, "proxya:8080");
strcpy(strUsername, "myusername");
strcpy(strPassword, "mypassword");
DWORD dwServiceType = AFX_INET_SERVICE_HTTP;
CString szServer, szObject;
INTERNET_PORT nPort;
AfxParseURL(url, dwServiceType, szServer, szObject, nPort);
CInternetSession mysession;
CHttpConnection* pConnection;
CHttpFile* pHttpFile;
pConnection = mysession.GetHttpConnection(szServer,
INTERNET_FLAG_KEEP_CONNECTION,
INTERNET_INVALID_PORT_NUMBER,
NULL, NULL);
pHttpFile = pConnection->OpenRequest("GET", szObject,
NULL, 0, NULL, NULL,
INTERNET_FLAG_KEEP_CONNECTION);
//here for proxy
INTERNET_PROXY_INFO proxyinfo;
proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
proxyinfo.lpszProxy = strProxyList;
proxyinfo.lpszProxyBypass = NULL;
mysession.SetOption(INTERNET_OPTION_PROXY, (LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO));
pHttpFile->SetOption(INTERNET_OPTION_PROXY_USERNAME, strUsername, strlen(strUsername)+1);
pHttpFile->SetOption(INTERNET_OPTION_PROXY_PASSWORD, strPassword, strlen(strPassword)+1);
pHttpFile->SendRequest(NULL);
DWORD nFileSize = pHttpFile->GetLength();
LPSTR rbuf = szContent.GetBuffer(nFileSize);
UINT uBytesRead = pHttpFile->Read(rbuf, nFileSize);
szContent.ReleaseBuffer();
pHttpFile->Close();
delete pHttpFile;
pConnection->Close();
delete pConnection;
mysession.Close();
return szContent;
}
bool SaveUrl(LPCTSTR url, LPCTSTR filename)
{
HINTERNET hNet = ::InternetOpen("Outlook",
PRE_CONFIG_INTERNET_ACCESS,
NULL,
INTERNET_INVALID_PORT_NUMBER,
0) ;
HINTERNET hUrlFile = ::InternetOpenUrl(hNet,
url,
NULL,
0,
INTERNET_FLAG_RELOAD,
0) ;
char buffer[10*1024] ;
DWORD dwBytesRead = 1;
BOOL bRead=TRUE;
CFile file;
file.Open(filename,CFile::modeCreate|CFile::modeWrite);
while(bRead&&dwBytesRead>0)
{
bRead = ::InternetReadFile(hUrlFile,
buffer,
sizeof(buffer),
&dwBytesRead);
if(dwBytesRead>0)
file.Write(buffer,dwBytesRead);
}
::InternetCloseHandle(hUrlFile) ;
::InternetCloseHandle(hNet) ;
file.Close();
AfxMessageBox("finished");
return bRead;
}
void CC02021101Dlg::OnOK()
{
// TODO: Add extra validation here
bool bret=SaveUrl("http://club.pchome.net/bbs2.php?topic=40&lanmuid=2","C:\\temp\\test.html");
if(bret)
AfxMessageBox("true");
else
AfxMessageBox("false");
}
下載事件說明:
OnDownloadBegin <--開始下載
OnDownloadComplete <--下載結束
OnDocumentComplete <--頁面下載完畢
對於每個HTML頁面,順序都是如此.如果是Frame或IFrame的文件都會當成HTML頁面處理.也就是說如果一個頁面中有3個IFrame,那麼總共會觸發4次BeforeNavigate2事件.
對於每個連接且需要顯示出來的二進制文件(如*.gif,*.bmp,*.jpg...)都會觸發一個DownloadBegin和DownloadComplete事件.
那我們怎麼判斷是否全部下載完畢呢?嘿嘿,TWebBrowser控制項不是有一個Busy屬性的嗎?包括相關文件:
#include
#include
#import
做成了:
Bool GetFromWeb(LPSTR pURL, LPSTR
SaveAsFilePath )
{ CInternetSession session; //會話期對象)
CHttpConnection* pServer = NULL; // 指向伺服器地址(URL)
CHttpFile * pHttpFile = NULL;// HTTP文件指針
CString strServerName; //伺服器名
CString strObject; //查詢對象名(http文件)
INTERNET_PORT nPort; //埠
DWORD dwServiceType; //服務類型
DWORD dwHttpRequestFlags = //請求標志
INTERNET_FLAG_EXISTING_CONNECT
INTERNET_FLAG_NO_AUTO_REDIRECT;
const TCHAR szHeaders[] =_T("Accept: text/*\r\nUser-Agent:HttpClient\r\n");
BOOL OK=AfxParseURL( //詞法分析
pszURL, //被分析URL串
dwServiceType, //服務類型,ftp,http等
strServerName, //伺服器名
strObject, //URL中被查詢對象
nPort ); //URL指定的埠,可能為空
OK=OK && //本例只考慮http協議
(dwServiceType ==
INTERNET_SERVICE_HTTP);
if (!OK)
{ AfxMessageBox("URL出錯"); //報錯
return false;
}
pServer = session.GetHttpConnection(strServerName, nPort); /獲得伺服器名
pHttpFile = pServer-> OpenRequest( CHttpConnection::HTTP_VERB_GET,strObject, NULL, 1, NULL, NULL,dwHttpRequestFlags);
//向伺服器發送請求,建立http連接,
//建立本機上的http文件指針
pHttpFile->AddRequestHeaders(szHeaders);
pHttpFile->SendRequest(); //發送請求
CStdioFile f; //輸出文件對象
if( !f.Open( //打開輸出文件
SaveAsFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText ) )
{ MessageBox( "Unable to open file";
return false;
}
//下面將檢索結果保存到文件上
TCHAR szBuf[1024]; //緩存
while (pHttpFile->ReadString(szBuf, 1023))
f.WriteString( szBuf );
f.Close(); //善後工作
pHttpFile ->Close();
pServer ->Close();
if (pHttpFile != NULL) delete pHttpFile;
if (pServer != NULL) delete pServer;
session.Close();
return true;
}
❹ 如何批量從ftp批量下載文件
如果你是WIN系統或者linux系統自帶的FTP,就是用代碼循環。
你用的是客戶端的話更簡單了,把需要下載的勾選的直接下就可以了,比如這款IIS7伺服器管理軟體。
它的操作簡單,功能強大可應用於win系列的操作系統(含VPS、VM);還可應用於linux操作系統:CentOS、Ubuntu、Debian等,支持命令及可視化SFTP管理;linux的vnc、win的vnc;FTP,webshell等,同時適合機房管理、站長、運維工作、程序員,等需要大量伺服器或者電腦的用戶朋友使用范圍很廣。
IIS7伺服器管理工具能夠作為FTP的客戶端,進行FTP的命令操作,定時備份上傳下載,自動更新。可在客戶端,下載,安裝FTP軟體!同時,它也可以作為VNC的客戶端,進行VNC的命令操作!它能夠批量連接Windows和Linux系統下的伺服器和VPS,並能夠實時監測他們的連接狀態,便於日常維護和操作!
❺ 上網找到的PHP批量下載圖片文件代碼: 能不能說一說上具體怎樣實現
比如說有個style.css 裡面有a.jpg b.jpg等圖片文件 。
程序讀取sytle.css里的各個圖處的路徑,即 .../a.jpg , ..../b.jpg 然後讀到一個數組里。
再遍歷這個數組,找到每一個圖片,下載下來。
就這樣簡單,希望能幫到你,^-^
❻ 如何批量下載excel表中鏈接上的圖片
1、先來看一下,Excel文檔中有很多圖片,現在就要把他們導出來,關閉Excel
❼ 求PYTHON批量下載文件的代碼,謝謝
實在不行,就用現成的工具吧,比如:
勾選超大容量模式。
❽ 易語言如何批量下載文件(用於下載電子書。) 求源代碼。
網址有規律嗎?
寫到文件(http讀文件())
記次循環
網址有規律嗎?說下規律
❾ VB中 一鍵把一個文件下載到指定位置的代碼
第一種 後台下載
聲明:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
然後在代碼里直接調用:
Call URLDownloadToFile(0, "網路地址", "保存到本地的地址和文件名", 0, 0)
第二種 相當於「另存為」
聲明:
Private Declare Function DoFileDownload Lib "shdocvw.dll"(ByVal lpszFile As String) As Long
然後在代碼里直接調用:
Dim AdUrl As String
AdUrl = StrConv(「網路地址」, vbUnicode)
Call DoFileDownload(AdUrl)
❿ 有沒有自動後台下載文件的Bat批處理代碼或C語言代碼
我有一個VBS下載文件的代碼,可以給您看看。
DimUrl,Target
Url="http://127.0.1/file.jpg"
Target="file.jpg"
DownloadUrl,Target
SubDownload(url,target)
ConstadTypeBinary=1
ConstadSaveCreateOverWrite=2
Dimhttp,ado
Sethttp=CreateObject("Msxml2.ServerXMLHTTP")
http.open"GET",url,False
http.send
Setado=createobject("Adodb.Stream")
ado.Type=adTypeBinary
ado.Open
ado.Writehttp.responseBody
ado.SaveToFiletarget
ado.Close
EndSub