PHP 支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。
libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。
curl_close() 关闭一个cURL会话。
curl_copy_handle()复制一个cURL句柄和它的所有选项。
curl_errno()返回最后一次的错误号。
curl_error()返回一个保护当前会话最近一次错误的字符串。
curl_escape()返回转义字符串,对给定的字符串进行URL编码。
curl_exec()执行一个cURL会话。
curl_file_create()创建一个CURLFile对象。
curl_getinfo()获取一个cURL连接资源句柄的信息。
curl_init()初始化一个cURL会话。
curl_multi_add_handle()向curl批处理会话中添加单独的curl句柄。
curl_multi_close()关闭一组cURL句柄。
curl_multi_exec()运行当前cURL句柄的子连接
curl_multi_getcontent()如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。
curl_multi_info_read()获取当前解析的cURL的相关传输信息。
curl_multi_init()返回一个新cURL批处理句柄。
curl_multi_remove_handle()移除curl批处理句柄资源中的某个句柄资源。
curl_multi_select()等待所有cURL批处理中的活动连接。
curl_multi_setopt()设置一个批处理cURL传输选项。
curl_multi_strerror()返回描述错误码的字符串文本。
curl_pause()暂停及恢复连接。
curl_reset()重置libcurl的会话句柄的所有选项。
curl_setopt_array()为cURL传输会话批量设置选项。
curl_setopt()设置一个cURL传输选项。
curl_share_close()关闭cURL共享句柄。
curl_share_init()初始化cURL共享句柄。
curl_share_setopt()设置一个共享句柄的cURL传输选项。
curl_strerror()返回错误代码的字符串描述。
curl_unescape()解码URL编码后的字符串。
curl_version()获取cURL版本信息。
需要这样的一个包 jcifs-1.1.11public static void forcdt(String dir){
InputStream in = null
OutputStream out = null
File localFile = new File(dir)
try{
//创建file类 传入本地文件路径
//获得本地文件的名字
String fileName = localFile.getName()
//将本地文件的名字和远程目录的名字拼接在一起
//确保上传后的文件于本地文件名字相同
SmbFile remoteFile = new SmbFile("smb://administrator:admin@10.0.0.1/e$/aa/")
//创建读取缓冲流把本地的文件与程序连接在一起
in = new BufferedInputStream(new FileInputStream(localFile))
//创建一个写出缓冲流(注意jcifs-1.3.15.jar包 类名为Smb开头的类为控制远程共享计算机"io"包)
//将远程的文件路径传入SmbFileOutputStream中 并用 缓冲流套接
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile+"/"+fileName))
//创建中转字节数组
byte[] buffer = new byte[1024]
while(in.read(buffer)!=-1){//in对象的read方法返回-1为 文件以读取完毕
out.write(buffer)
buffer = new byte[1024]
}
}catch(Exception e){
e.printStackTrace()
}finally{
try{
//注意用完操作io对象的方法后关闭这些资源,走则 造成文件上传失败等问题。!
out.close()
in.close()
}catch(Exception e){
e.printStackTrace()}
}
}
HTTPClient网上代码很多的 可以直接复制 然后再输入远程地址 另外在远程服务器那边写个Webservices 用于接收传过来的图片数据 很简单的 HTTPCLIENT里面的远程地址说白了就是调用远程服务器那边的这个WEBSERVICES我不知道你在做什么项目哈 但是我知道一般用这种方法上传图片是用于基于WPF的silverlight上传图片和视频的方法 因为WPF是客户端 只有这种方法可以实现 其实还有很多方法的 思路是变化的 比如你可以把需要上传的图片转化为bitimage 然后将这个bitimage转化为byte[]类型传给服务器服务器直接接受这个byte[] 然后服务器再将这个byte转化为图片就可以了 其实这只是一种方法而已 很多人给了他一个专业的术语 可以成为一种协议,很多做视频聊天 视频监控都可以用我说这种方法 本人亲测 CPU优化还算不错 用于商业项目是可以的
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)