① linux腳本xml文件ftp傳輸,xml文件如下: xml文件是伺服器發給的,沒有換行,連著寫的。
嘗試用Ultraedit編輯文件,然後保存為unix格式,
通過ftp
bin模式上傳試一下
② 怎樣通過java定時將資料庫中的信息導出後生成xml文件,並通過ftp上傳到指定的位置
1、使用quarz或者jdk的timer來制定定時任務。
2、使用jdbc或者hibernate等方法獲取資料庫中信息。
3、使用xmlbeans或者dom4j等技術生成xml文件。
4、使用sun.net.ftp.FtpClient上傳到指定ftp伺服器。
③ 哪位兄台給一個用java來創建xml文件、更新xml節點的例子
java創建文件不都是一樣嗎?
至於更新xml文件,看下這個··
別人的
xml:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<Messages>
<sendName>sendUsers</sendName>
<receiveName>snake</receiveName>
<date>2007-12-04 12:20:00</date>
<status>0</status>
<message>this is Content</message>
</Messages>
</users>
java:
package com.lianxi.DAO;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/** 將document中的內容寫入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 編碼 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename)
{
Document document = null;
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.parse(new File(filename));
document.normalize();
}
catch (Exception ex){
ex.printStackTrace();
}
return document;
}
/**
* 演示修改文件的具體某個節點的值
*/
public static void xmlUpdateDemo()
{
Document document = load("c://Message.xml");
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循環取得ftp所有節點 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
/** 刪除ftp-chn節點 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值為 192.168.0.1 */
if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="status")
{
subnode.getFirstChild().setNodeValue("1");
}
}
}
}
doc2XmlFile(document,"c://Message.xml");
}
public static void main(String args[])throws Exception
{
UpdateXml.xmlUpdateDemo();
}
}
④ FTP目錄有哪些屬性
一、設置FTP站點主目錄
[操作步驟]
同Web站點一樣,每個FTP站點也必須有一個主目錄,作為其他訪問者用戶FTP站點的起點。在FTP站點中,所有的文件都存放在作為根目錄的主目錄中,這就使其他訪問者對用戶FTP站點中的文件查找變得非常方便。
1.選擇「開始」→「程序」→「管理工具」→「Internet信息伺服器」命令,打開「Internet信息服務」控制台窗口。在控制台目錄樹中,展開「Internet信息服務」節點,再雙擊該節點展開伺服器節點。
2.右擊「默認FTP站點」,從彈出的快捷菜單中選擇「屬性」命令,打開「默認FTP站點屬性」對話框,然後切換到「主目錄」選項卡。
3.選擇「此計算機上的目錄」單選按鈕。如果主目錄在伺服器上,則選擇該單選按鈕;如果主目錄在網路計算機上,則選擇「另一計算機上的共享位置」。
4.在「FTP站點目錄」選項組中,單擊「瀏覽」,選擇主目錄路徑,或者直接輸入主目錄路徑。這里是「默認FTP站點」的主目錄c:\Inetpub\ftproot,未改變它。
5.通過啟用不同復選框來設置目錄許可權。讀取:能夠下載存儲在主目錄或虛擬目錄文件。寫入:上傳文件到FTP站點的主目錄或虛擬目錄。日誌訪問:對主目錄的訪問都記錄在日誌文件中。
6.在「目錄列表風格」選項組中,通過選擇不同的單選按鈕來選擇目錄列表的風格,包括UNIX和MS-DOS風格。設置完畢,單擊「確定」。
7.如果要將「公司主FTP站點」的主目錄,設置為「默認WEB站點」的主目錄c:\Inetpub\wwwroot,單擊「瀏覽」按鈕,找到c:\Inetpub\wwwroot。
二、設置FTP站點的標識碼、連接數、記錄方式
[操作步驟]
在FTP站點屬性中,利用「FTP站點」選項卡可以設置FTP站點的標識碼、連接數和記錄的方式。
選中「默認FTP站點」,右擊「屬性」,選擇「FTP站點」選項卡,在「標識」框中的「說明」:FTP站點的名稱,在「Internet信息服務」管理器樹狀結構中用的就用此名稱。「IP地址」:選擇使用的IP地址,而且尚未指定給其他的FTP站點。「TCP埠」:設置Internet服務的連接埠號,默認為21。
在「連接」框中,設置同時連接FTP站點的用戶數和連接逾時時間。「無限」:不限制同時連接的用戶數。「限制到」:設置同時的最大連接數,請在後面欄位輸入允許的最大連接數。「連接超時」:如果已經沒有傳送資料的用戶連接,設置等待的時間,以秒計。
選中「啟用日誌記錄」,啟動FTP站點的日誌記錄功能,並且允許選擇使用的日誌格式(下拉列表中)。
單擊「當前會話」按鈕,可以查看目前的連接者,顯示用戶的名稱,如果是匿名就是電子郵件地址,來源的IP地址和登錄的時間。選擇某一用戶後,單擊下方的「斷開」按鈕,以便強迫用戶注銷,單擊「全部斷開」將注銷所有的用戶。
三、設置FTP站點是否允許匿名連接
[操作步驟]
在FTP站點屬性中,在「安全帳號」選項卡中設置FTP站點是否允許匿名連接和FTP站點操作員。
選中「默認FTP站點」,右擊「屬性」,選擇「安全帳號」選項卡,在「允許匿名連接」中選擇FTP站點是否允許匿名連接,設置匿名用戶的默認用戶帳號,如果此選項未被選中,則必須有用戶帳戶登錄。選中「只允許匿名連接」選項,則不允許用戶帳戶登錄,只能匿名登錄。選中「允許IIS控制密碼」復選框,將使用IIS來同步密碼。
「FTP站點操作員」:單擊「添加」按鈕,從列表框中選取操作員許可權的Windows2000用戶帳戶,如果要刪除操作員,請選取列表框的用戶帳號,單擊「刪除」按鈕,刪除指定的操作員。
四、設置FTP站點進入、退出和太多連接時的消息正文
[操作步驟]
在FTP站點屬性中,在「消息」選項卡中設置FTP站點進入、退出和太多連接時的消息正文,如果沒有設置,默認使用英文的文字說明。
選中「默認FTP站點」,右擊「屬性」,選擇「消息」選項卡,「歡迎」:當登錄FTP站點時,歡迎用戶進入FTP站點的消息正文。「退出」:當用戶注銷時顯示的消息正文。「最大連接數」:如果目前連接數超過設置的最大連接數時,顯示的警告信息。
五、設置FTP站點訪問限制
[操作步驟]
在FTP站點屬性中,在「目錄安全性」選項卡中能夠設置TCP/IP訪問限制,添加IP地址授予訪問或拒絕訪問FTP站點的許可權。
選中「默認FTP站點」,右擊「屬性」,選擇「目錄安全性」選項卡,選取「授權訪問」或「拒絕訪問」單選,以改變FTP站點訪問的方式。
如果要拒絕某些地址的訪問,則先選取「拒絕訪問」單選框,單擊「添加」按鈕,打開「拒絕以下訪問」對話框。若選擇限制的類型為「單機」,則指定拒絕訪問的IP地址。若選擇限制的類型為「一組計算機」則指定網路標識及子網掩碼。
六、自己練習
[操作步驟]
1.建立一個可以遠程維護默認WEB站點的FTP目錄,即:可以通過FTP服務上傳文件至默認WEB站點的主目錄。
2.此FTP服務每次只能有10個用戶使用此服務。當此FTP服務的連接數達到所允許的最大值時,如果還有用戶想進行連接,發出信息「已達到最大連接數」,且當用戶從此FTP服務注銷時,發出信息「再見」。
⑤ linux虛擬機怎麼用npm建立xml2js
步驟如下:1、建立虛擬用戶口令庫文件
口令庫文件中奇數行設置用戶名,偶數行設置口令
# vi /etc/vsftpd/logins.txt 注意,一下是4行
upload 這個是帳戶名
upload 這個是密碼
download
download2、生成vsftpd的認證文件
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
設置認證文件只對用戶可讀可寫
# chmod 600 /etc/vsftpd/vsftpd_login.db
3、建立虛擬用戶所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:以上2行中最後的2個文件名vsftpd_login和第2個步驟中的資料庫名字必須一致!4、建立虛擬用戶所要訪問的目錄並設置相應許可權
# mkdir /home/ftpsite
# useradd -d /home/ftpsite virtual(用戶名)
# chown virtual:virtual /home/ftpsite
# chmod 700 /home/ftpsite/ 5、設置vsftpd.conf配置文件
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu 6、設置主配置文件
在vsftpd.conf文件中添加用戶配置文件目錄設置
user_config_dir=/etc/vsftpd_user_conf
# service vsftpd restart7、建立用戶配置文件目錄
使用mkdir命令建立用戶配置文件目錄
# mkdir /etc/vsftpd_user_conf
為虛擬用戶建立單獨的配置文件,用戶配置文件名稱與用戶名相同
touch /etc/vsftpd_user_conf/upload
touch /etc/vsftpd_user_conf/download8、每個FTP虛擬用戶都可以獨立設置其許可權vi /etc/vsftpd_user_conf/upload
anon_world_readable_only=NO 可讀可下載
anon_upload_enable=YES 可上傳
anon_mkdir_write_enable=YES 可創建和刪除文件夾
anon_other_write_enable=YES 可文件改名和刪除文件
local_root=/home/ftpsite/upload 指定upload的宿主目錄download_enable=NO 禁止下載
(注意:請先到/home/ftpsite下面去創建upload文件夾)
⑥ FTP文件怎麼在xml修改使得鏈接地址有下劃線
在css中加入 a,a:link,a:visited { color:#ff0000}//鏈接的顏色 如果想讓滑鼠指向它時也變色就再加上: a:hover{color:#ff00ff}//滑鼠指向的顏色(顏色你自己選)
⑦ 如何往網上上傳 .xml 的文件
一般的網站空間你申請下來後,如果允許你使用XML的文件格式,都可以通過登陸網站,使用網站的表單的形式,提交上傳文件來上傳,或者通過FTP軟體,用FTP傳輸協議上傳,具體的軟體很多,華軍,skycn等網站都有FTP軟體,每個軟體的使用方法略有不同,但是大概都跟Windows的資源管理器差不太多,具體看使用說明或教程。
⑧ filezilla server 怎麼設置
伺服器設置:
第1步 進行伺服器全局參數設置:點「Edit」菜單,選「Settings」
General settings(常規設置):
Listen on Port:監聽埠,其實就是FTP伺服器的連接埠。
Max.Number of users:允許最大並發連接客戶端的數量。
Number of Threads:處理線程。也就是CPU優先順序別。數值調得越大優先順序越高,一般默認即可。
timeout setting:超時設置,自上至下分別為:連接超時、傳輸空閑超時、登入超時。單位為秒。
⑨ 從ftp上下載每天的xml文件到本地,再解析本地的xml文件中的數據並將其存入sqlserver資料庫中
我給你個解析的代碼吧~具體存資料庫得根據實際情況來
#include "StdAfx.h"
#include "parse.h"
#include <string>
#include "stdafx.h"
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <iostream>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <stdio.h>
#include <stdlib.h>
#include<windows.h>
using namespace std;
parse::parse()
//int parse::parsexml()
{
xmlDocPtr doc; //定義解析文檔指針
xmlNodePtr curNode; //定義結點指針(你需要它為了在各個結點間移動)
xmlChar *szKey; //臨時字元串變數
char *szDocName;
doc = xmlReadFile("SimACQ_Config.xml","GB2312",XML_PARSE_RECOVER); //解析文件
//檢查解析文檔是否成功,如果不成功,libxml將指一個注冊的錯誤並停止。
if (NULL==doc)
{
fprintf(stderr,"Document not parsed successfully. /n");
/*return -1;*/
}
curNode = xmlDocGetRootElement(doc); //確定文檔根元素
/*檢查確認當前文檔中包含內容*/
if (NULL == curNode)
{
fprintf(stderr,"empty document/n");
xmlFreeDoc(doc);
/*return -1;*/
}
/*在這個例子中,我們需要確認文檔是正確的類型。「root」是在這個示例中使用文檔的根類型。*/
if (xmlStrcmp(curNode->name, BAD_CAST "SIMCONFIG"))
{
fprintf(stderr,"document of the wrong type, root node != mail");
xmlFreeDoc(doc);
/*return -1; */
}
curNode = curNode->xmlChildrenNode;
xmlNodePtr propNodePtr = curNode;
while(curNode != NULL)
{
//取出節點中的內容
if ((!xmlStrcmp(curNode->name, (const xmlChar *)"ComConfig")))
{
xmlNodePtr comConfigPtr= curNode->children;
while(comConfigPtr!=NULL)
{
if((!xmlStrcmp(comConfigPtr->name,(const xmlChar *)"DMS")))
{
xmlChar* szAttr = xmlGetProp(comConfigPtr,BAD_CAST "IP");
IP=(char*)szAttr;
szAttr=xmlGetProp(comConfigPtr,BAD_CAST "PORT");
PORT=atoi((const char *)szAttr);
szAttr=xmlGetProp(comConfigPtr,BAD_CAST "TIMEOUT");
TIMEOUT=atoi((const char *)szAttr);
xmlFree(szAttr);
}
comConfigPtr=comConfigPtr->next;
}
}
if ((!xmlStrcmp(curNode->name, (const xmlChar *)"Log")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Flag");
if(szAttr!=NULL)
{
if((!xmlStrcmp(szAttr,(const xmlChar *)"True")))
{
FLAG=true;
}
else
{
FLAG=false;
}
}
szAttr = xmlGetProp(curNode,BAD_CAST "Path");
if(szAttr!=NULL)
{
PATH=(char*)szAttr;
}
xmlFree(szAttr);
}
if ((!xmlStrcmp(curNode->name, (const xmlChar *)"DMS")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Cache");
if(szAttr!=NULL)
{
Cache=atoi((const char *)szAttr);
}
xmlFree(szAttr);
}
if ((!xmlStrcmp(curNode->name, (const xmlChar *)"SimFile")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Type");
if(szAttr!=NULL)
{
if((!xmlStrcmp(szAttr,(const xmlChar *)"PlainFilm")))
{
xmlNodePtr FileNodes=curNode->children;
int i=0;
while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");
if(szAttr!=NULL)
{
/*SIM_PLAIN[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_PLAIN[i].Name,(char*)szAttr);
}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");
if(szAttr!=NULL)
{
simulation.SIM_PLAIN[i].Num=atoi((char*)szAttr);
}
i++;
}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_PLAIN[i].flag=0;
}
if((!xmlStrcmp(szAttr,(const xmlChar *)"Spiral"))){
xmlNodePtr FileNodes=curNode->children;
int i=0;
while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");
if(szAttr!=NULL)
{
/*SIM_SPIRAL[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_SPIRAL[i].Name,(char*)szAttr);
}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");
if(szAttr!=NULL)
{
simulation.SIM_SPIRAL[i].Num=atoi((char*)szAttr);
}
i++;
}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_SPIRAL[i].flag=0;
}
if((!xmlStrcmp(szAttr,(const xmlChar *)"axial")))
{
xmlNodePtr FileNodes=curNode->children;
int i=0;
while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");
if(szAttr!=NULL)
{
/* SIM_AXIAL[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_AXIAL[i].Name,(char*)szAttr);
}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");
if(szAttr!=NULL)
{
simulation.SIM_AXIAL[i].Num=atoi((char*)szAttr);
}
i++;
}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_AXIAL[i].flag=0;
}
}
xmlFree(szAttr);
}
curNode = curNode->next;
}
xmlFreeDoc(doc);
/*return 0;*/
}
有什麼不明白的再問吧!
⑩ 關於ftp下載的設計
我放在service中去下載了,每隔一分鍾去調用下介面,判斷有沒有任務,每個任務裡面都是一個ftp的xml,然後下載到本地去解析的,每個xml裡面又定義ftp素材,現在發現for循環的時候,有的xml沒有下載下來,還不知道問題出在哪裡了!