当前位置:首页 » 文件管理 » c远程上传文件

c远程上传文件

发布时间: 2022-10-08 16:40:23

① c 实现文件上传,获取客户端浏览器信息

uc浏览器就不错,它的安装包很小,不占内存,不影响运行,浏览网页速度很快。感觉不到有延迟响应。它的安全体系很高,无痕浏览,可以保护你的上网隐私。它的架构新,稳定性能极强,速度很快,可以瞬间加载经常内容。谢谢望采纳。

c语言实现文件上传

用c语言调用java程序
java没有程序这一说,只有java解释器。
要让c调用java的东西
看看这篇文章;
http://developer.ccidnet.com/art/818/20030217/38068_1.html
太长了,我就不帖了

③ c语言文件传输

服务器端(发送文件):首先打开文件【fopen】,用rb方式打开,既可以发送文本文件,也可以发送二进制文件,在无错时初始化套接字socket,即初始化socket库【WSAStartup】,分配socket【socket】,填充服务器的地址,即填充sockaddr_in结构,然后进行绑定【bind】,设置套接字为监听套接字【listen】,接收连接【accept】,至此服务器阻塞,等待客户端的连接。
客户端(接收文件):首先打开文件【fopen】,用wb方式打开,在无错时初始化套接字socket,即初始化socket库【WSAStartup】,分配socket【socket】,填充客户端的地址,即填充sockaddr_in结构,然后进行绑定【bind】,再填充服务器的地址结构,然后调用【connect】进行连接,当连接成功后,第一阶段的工作便结束了。
第二阶段,发送文件。
服务器端:使用循环while,结束条件是(!feof(fp)),fp是文件指针,feof检测当前的文件读取指针是否到达文件尾部,若到达了就返回真,否则返回假。然后在循环内部依次调用【fread】、【send】进行发送。这里有一个问题需要注意,调用fread的时候有两个参数是要每次读多少字节和读多少次,将第一个设置为1,将第二个设置为缓冲区的大小,用一个变量记录实际读到多少字节,即【fread】的返回值,然后将其传递给【send】,就可以实现发送文件了,在发送完成后断开连接【closesocket】,关闭文件【fclose】。
客户端:使用while死循环,调用【recv】接收文件,【fwrite】写入文件,这里也有个和上面类似的问题,就是要将recv的返回值传递给fwrite的第三个参数,即受到了多少字节,就向文件中写多少字节。当recv返回值为0时(连接断开时)退出循环,【closesocket】关闭套接字,调用【fclose】关闭文件。

④ 怎么用C实现Http POST功能向Http服务器上传文件

super viewDidLoad];
webview.backgroundColor = [UIColor clearColor];
webview.scalesPageToFit =YES;
webview.delegate =self;
NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[webview loadRequest:request];
}

⑤ 如何用c语言实现上传文件

ftp 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
1.C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。

⑥ C语言安全文件传输程序设计。

安全文件传输程序?就是TCP传输吧:随便写了下,好多地方都没怎么验证,比如待发送的文件是否存在;代码如下(此程序用于WINDOWS,我用的是VC调试的,LINUX下方法略有不同)文件接收端:#pragma comment(lib,"ws2_32.lib")#include <stdio.h>
#include <io.h>
#include <winsock2.h>
#include <fcntl.h>
#include <sys\stat.h>
int recv_file(SOCKET sock)
{
char buffer[1024] = {0};
int name_len;
/*首先读取sizeof(int) 即4个字节的内容,服务器发送文件名之前会把该文件名的长度发送过来*/
if (recv(sock,(char *)&name_len,sizeof(int),0) < 0)
{
printf("远程服务器断开");
return -1;
}
/*接收即将传输文件的文件名*/
if (recv(sock,buffer,name_len,0))
{
printf("远程服务器断开");
return -1;
}

/*创建该文件,最好此处加上判断,该文件是否已经存在*/
int fd = open(buffer,O_RDWR|O_CREAT ,S_IFMT );
if (fd < 0)
{
printf("文件创建失败\n");
return -1;
}

int recv_count = 0;
/*从套接字循环读取文件内容*/
while ((recv_count = recv(sock,buffer,sizeof(1024),0))>0)
{
/*将读取到的内容保存至文件,recv_count为从网络上读取到得字节数,然后原数保存至文件*/
write(fd,buffer,recv_count);
}
printf("文件接收完成,成功保存至当前目录下\n");
return 0;
}
void main()
{
WSADATA wsa_data;
/*windows 下使用sock 必须调用这个函数,0x0202是一个版本号*/
WSAStartup(0x0202,&wsa_data); SOCKET s_sock;
/*创建套接字*/
s_sock = socket(AF_INET,SOCK_STREAM,0); /*定义本机绑定套接字需要的IPV4地址*/
sockaddr_in se_addr;
se_addr.sin_family = AF_INET;
se_addr.sin_port = htons(1024);/*指定端口号1024*/
se_addr.sin_addr.S_un.S_addr = INADDR_ANY;/*绑定本机任意网卡IP*/ /*将前两步创建的套接字和IP地址绑定*/
bind(s_sock,(sockaddr*)&se_addr,sizeof(sockaddr)); /*开始启动监听服务*/
if (listen(s_sock,10)<0)
{
int err = GetLastError();
}
sockaddr_in from_addr;
int addr_len = sizeof(from_addr);
/*等待发送文件服务器连接,此为阻塞函数*/
SOCKET temp_sock = accept(s_sock,(sockaddr *)&from_addr,&addr_len); /*有服务器连接到本机,调用接收文件函数*/
recv_file(temp_sock);
} 文件发送端:#pragma comment(lib,"ws2_32.lib")#include <stdio.h>
#include <io.h>
#include <winsock2.h>
#include <fcntl.h>
#include <sys\stat.h>
int send_file(SOCKET sock,char *name)
{
int fd = open(name,O_RDWR ,S_IFMT );
if (fd < 0)
{
printf("文件打开失败\n");
return -1;
} int name_len = strlen(name);
/*首先发送文件名的长度*/
send(sock,(char *)&name_len,sizeof(int),0);
/*发送文件名*/
send(sock,name,name_len,0);

char buffer[1024] = {0};
int read_count = 0;
/*循环从文件中读取,然后写入到套接字,发送到网络*/
while ((read_count = read(fd,buffer,sizeof(1024)))>0)
{
send(sock,buffer,read_count,0);
}
printf("文件发送完成\n");
return 0;
}
void main(int argc,char *argv[])
{
WSADATA wsa_data;
WSAStartup(0x0202,&wsa_data);
SOCKET s_sock;
s_sock = socket(AF_INET,SOCK_STREAM,0);

sockaddr_in to_addr;
to_addr.sin_family = AF_INET;
to_addr.sin_port = htons(1024);
/*指定接收文件IP为本机(127.0.0.1为本机IP),如其他主机请更改此IP,正常来说,IP应写入配置文件*/
to_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

char file_name[256] = {0};
printf("请输入要发送的文件名,并确保该文件存在于当前目录下\n");
scanf("%s",file_name); /*连接接收文件的电脑*/
if (connect(s_sock,(sockaddr *)&to_addr,sizeof(sockaddr)) < 0)
{
printf("链接接受文件电脑失败\n");
return;
} /*调用发送文件函数*/
send_file(s_sock,file_name);
}

⑦ 在asp.net中我已知C:\aa.txt这个文件了,在不用Html的file的情况下怎么把他上传到远程的服务器上啊

先写到流,再保存到服务器上

⑧ winsocket使用c实现文件传输具体如何操作

background: 知道如何建立连接,如何收发字符串

下面是一个简单的实现:
1. client发送请求,比如 get [filename]
2. server读取请求,并得到文件名。server查看是否有该文件,有的话给client发送ready的信号(字符串),client收到该信号后进入接收文件状态。
3. server读取文件到buf中,并按自定义协议的格式包装文件数据。然后发送。
4. 页头上可以用一个字段来指示是否为末页,从而client可以判断传输是否该结束。

文件分割可以参照ftp协议的“页结构”:
http://www.zaoxue.com/article/tech-18239.htm

⑨ 如何用c实现fastcgi文件上传

如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。

⑩ 我想用做一个C/S构架的程序连接到远程服务器oracle数据库并上传和下载文件,求高手指点。

我把以前写的贴给你吧
1.我的是MSSQL的,你自己改改

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//
string connString = "自己改改";
private void btn_connection_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
}
MessageBox.Show("数据库已经打开->关闭!");
}

private void btn_cmd_Click(object sender, EventArgs e)
{
string command = txt_cmd.Text;
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = command;
object str = cmd.ExecuteScalar();
MessageBox.Show("语句执行完毕,第一行第一列的数据是:" + str.ToString());
}
MessageBox.Show("数据库连接断开....");
}
}

private void btn_DataRead_Click(object sender, EventArgs e)
{
MessageBox.Show("在线读取数据(不可断开SQL连接)");
textBox1.Clear();
textBox1.Text = "开始在线读取.....\n";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from province";
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
string proName = sdr["proName"].ToString();
string proID = sdr["proID"].ToString();
string keys = sdr["keys"].ToString();

textBox1.AppendText(proID+" "+proName + " "+keys+"\n");
}
MessageBox.Show("读取结束");
}

}
}
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.ScrollBars = ScrollBars.Vertical;
}

private void btn_OnlineChange_Click(object sender, EventArgs e)
{
MessageBox.Show("在线修改数据(不可断开SQL连接)");
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into city(cityName,proID) values('美国',1)";
int i = cmd.ExecuteNonQuery();
MessageBox.Show("修改完毕,影响的行数:" + i.ToString());

}
}
}

private void btn_DataSet_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox1.Text = "开始离线读取数据....\n";
MessageBox.Show("离线读取数据(可以断开SQL连接)");

using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from province";
SqlDataAdapter ada = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
ada.Fill(dataset);
DataTable datatable = dataset.Tables[0];
for (int i = 0; i < datatable.Rows.Count; i++)
{
DataRow dr = datatable.Rows[i];
string proID = dr["proID"].ToString();
string proName = dr["proName"].ToString();
string keys = dr["keys"].ToString();
string str = string.Format("第{0}行:{1} {2} {3} ", i + 1, proID, proName, keys);
textBox1.AppendText(str + "\n");
}

}
}

}

private void btn_LastChange_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox1.Text = "离线修改并读取内存中的数据...\n";
MessageBox.Show("离线读取数据(可以断开SQL连接)");
DataSet dataset = new DataSet();
using (SqlConnection conn = new SqlConnection(connString))
{

conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from province";
using (SqlDataAdapter ada = new SqlDataAdapter(cmd))
{

ada.Fill(dataset);

//内存中修改
//第一张表
DataTable datatable = dataset.Tables[0];
//第一行的ProName修改为美国
DataRow dr = datatable.Rows[0];
dr["proName"] = "瑞士";
////增加一行,就是36行了
DataRow d = datatable.NewRow();
d["proID"] = 23;
d["proName"] = "丹阳";
d["keys"] = "D";
datatable.Rows.Add(d);
//移走第三行
//datatable.Rows.RemoveAt(2);注意:这是移走,不是删除
for (int i = 0; i < datatable.Rows.Count; i++)
{
DataRow dr1 = datatable.Rows[i];
string proID = dr1["proID"].ToString();
string proName = dr1["proName"].ToString();
string keys = dr1["keys"].ToString();
string str = string.Format("第{0}行:{1} {2} {3} ", i + 1, proID, proName, keys);
textBox1.AppendText(str + "\n");

//更新到数据库
SqlCommandBuilder scb = new SqlCommandBuilder(ada);
ada.Update(dataset);
}
}
}

}
}
}
}

热点内容
湖南回收服务器主板云主机 发布:2024-10-08 06:12:59 浏览:807
psv视频脚本 发布:2024-10-08 06:12:13 浏览:420
文件夹菜单栏 发布:2024-10-08 05:46:23 浏览:491
压缩机选型手册 发布:2024-10-08 05:24:37 浏览:621
java主机名 发布:2024-10-08 05:12:55 浏览:118
华意压缩待遇 发布:2024-10-08 05:04:07 浏览:466
jsp上传图片存到数据库 发布:2024-10-08 05:04:06 浏览:74
分卷压缩解压速度 发布:2024-10-08 04:45:16 浏览:847
冰雪单职业辅助哪个好安卓 发布:2024-10-08 04:40:06 浏览:663
iqz3哪个配置好一点 发布:2024-10-08 04:34:07 浏览:761