当前位置:首页 » 文件管理 » iosftp传输大文件

iosftp传输大文件

发布时间: 2023-05-20 04:45:36

ftp传输的数据最多能支持多大1.2GB还是1.5GB上次用FTP传输4GB的数据,结果报错。

FTP传送的数据与FTP软件有关。建议您是使用断电续传的工具,比如快车等下载试试。我们知道,在文件传输协议上,有TCP/IP与UDP两大类,文件传输涉及将所传送的文件分包、重组的问题,TCP/IP协议对所传数据一律采取两端校验的方式,如果校验出差,就提示传输失败,要求重新传输。而UDP则是不负责两端校验,将这个工作交给了应用程序来控制。所以在传输大数据量的数据时,多采用UDP协议的方式,而不是TCP/IP,由应用程序负责数据包的校验与重组,这就是很多断点续传工具的工作原理。不会因为校验失败,而要求全部重新传输,因为应用程序记住了每个数据分组的信息,下次重新传输的时候,就接收一下未成功检验的数据分组就可以了。

❷ FTP上传软件不能上传大于1M的文件

1.上传限制默认是2M 要想修改的话 网络搜“ftp上传限制修改”一大把资料不多说了
2.flashfxp速度降为0,先改一下传输模式试试----被动模式 软件上面的。
3.速度慢慢降为0 的另一个原因,以前这个问题也困扰了我好久
找了几天才找到原因,安装的第三方 防火墙冲突。关闭服务器防火墙试试 是 不是这个原因。

❸ iOS大文件的分片上传和断点上传

由于最近比较忙,所以一直没有写博客,现在分享一些大文件的上传的问题!断点续传和分片上传。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传。所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理。断点续传要求本地要记录每一片的上传的状态,我通过三个状态进行了标记(wait loading finish),当网络中断,再次连接后,从断点处进行上传。服务器通过文件名、总片数判断该文件是否已全部上传完成。

下面来说细节:

1、首先获取文件(音视频、图片)

分两种情况,一种是在相册库里直接获取,一种是调用相机。如果是通过UIImagePickerView来获取(细节不详述,网上一大堆),我们会发现当你选定一个视频的时候,会出现图1的压缩页面,最后我们的app获取的视频就是这个经过压缩后的视频(不是视频库里的原始视频,这里有个注意点,操作完该压缩视频后记得释放,系统不会帮你释放的,需要你手动来操作,下面会说到),然后通过UIImagePickerView的协议方法中的- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info获取视频的Info

fileInfo = {

= "public.movie";

= "file:///private/var/mobile/Containers/Data/Application/2AAE9E44-0E6D-4499-9AC3-93D44D8342EA/tmp/trim.F36EC46C-4219-43C8-96A7-FA7141AB64D2.MOV";

= "assets-library://asset/asset.MOV?id=DEDA9406-3223-4F87-ABB2-98FB5F5EB9C4&ext=MOV";

}

是选取文件的类型,如KUTTypeImage,KUTTypeMovie。这里注意一下movie和video的区别,一个是有声音的视频文件,一个是没有声音的视频文件,当然还有Audio是只有声音没有视频。是视频的URL(如果是相机拍摄的,那么这个就是原始拍摄得到的视频;如果是在相册库里选择的,那就是压缩之后生成的视频),注意这个URL不指向相册库,通过这个URL你可以操作这个视频如删除,拷贝等,可以获取压缩后的视频的大小。是一个指向相册的URL,官方的解释是an NSURL that references an asset in the AssetsLibrary framework,通过这个URL,你可以获取视频的所有信息,包括文件名,缩略图,时长等(通过ALAssetsLibrary里的assetsLibraryassetForURL:referenceURLresultBlock:)。

如果是相机拍摄的,注意两个保存方法:图片保存到相册:UIImageJPEGRepresentation([infovalueForKey:],(CGFloat)1.0)metadata:nilcompletionBlock: failureBlock:

高保真压缩图片的方法NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality)

视频保存到相册::MediaURL completionBlock:failureBlock:

到这里,我们就获取了所有需要的文件以及文件信息。下面要做的就是将文件分片。

2、将获取到的文件分片

首先,我将获取到的文件保存在这这样一个类中

@interface CNFile :NSObject

@property(nonatomic,)NSString* fileType;//image or movie

@property(nonatomic,)NSString* filePath;//文件在app中路径

@property(nonatomic,)NSString* fileName;//文件名

@property(nonatomic,assign)NSIntegerfileSize;//文件大小

@property (nonatomic,assign)NSIntegertrunks;//总片数

@property(nonatomic,)NSString* fileInfo;

@property(nonatomic,strong)UIImage* fileImage;//文件缩略图

@property(nonatomic,strong) NSMutableArray* fileArr;//标记每片的上传状态

@end

这样我们就可以对每一个CNFile对象进行操作了。

-(void)readDataWithChunk:(NSInteger)chunk file:(CNFile*)file{

总片数的获取方法:

intoffset =1024*1024;(每一片的大小是1M)

NSIntegerchunks = (file.fileSize%1024==0)?((int)(file.fileSize/1024*1024)):((int)(file.fileSize/(1024*1024) +1));

NSLog(@"chunks = %ld",(long)chunks);

将文件分片,读取每一片的数据:

NSData* data;

NSFileHandle*readHandle = [:file.filePath];

[readHandleseekToFileOffset:offset * chunk];

data = [readHandlereadDataOfLength:offset];

}

这样我们就获取了每一片要上传的数据,然后询问服务器,该片是否已经存在

(方法-(void)ifHaveData:(NSData*)data WithChunk:(NSInteger)chunk file:(CNFile*)file)

,如果存在,令chunk+1,重复上面的方法读取下一片,直到服务器不存在该片,那么上传该片数据。在这个方法中注意设置该chunk的上传状态(wait loading finish),这将关系到本地判断该文件是否已全部上传完成。

下一步就是上传的过程:

-(void)uploadData:(NSData*) data WithChunk:(NSInteger) chunk file:(CNFile*)file;

在服务器返回该片上传成功后,我们要做的事有很多:

1)先将已经成功上传的本片的flag置finish

[file.fileArrreplaceObjectAtIndex:chunk withObject:@“finish"];

2)查看是否所有片的flag都已经置finish,如果都已经finishi,说明该文件上传完成,那么删除该文件,上传下一个文件或者结束。

for(NSIntegerj =0; j

if(j == chunks || ((j == chunks -1)&&([file.fileArr[j]isEqualToString:@"finish"])))

[medeleteFile:file.filePath];

[mereadNextFile];

}

3)如果没有都finish,那么看本地下一chunk对用的flag是否是wait

NSLog(@"查看第%ld片的状态",chunk+1);

for(NSIntegeri = chunk+1;i < chunks;i++)

{

NSString* flag = [file.fileArrobjectAtIndex:i];

if([flagisEqualToString:@"wait"]) {

[mereadDataWithChunk:ifileName:fileNamefile:file];

break;

}

}

在第2、3步之间可以有一个 2.5)判断是否暂停上传

if(me.isPause ==YES)

{

//将目前读到了第几个文件的第几片保存到本地

[selfsaveProgressWithChunk:chunk file:file];

return;

}

这个操作实际上和上传过程中断网是一样的,为了断点续传,在断网或者暂停的时候,我们要将目前的进度保存起来,以便下次上传时略过前面已置finish的片。

然后还有一个问题,如果我们就这样线性的一片一片上传,实际上失去了分片上传的意义,应该结合多线程,使分片上传过程并发执行,同时上传多片,这样就提高了上传效率,并充分利用了网络带宽。

dispatch_async(dispatch_queue_t queue, ^{

[mereadDataWithChunk: chunk];

})

最后注意一下,每上传完一个视频,去设置里看看你的app占用的存储空间有没有增大哦,如果你没有处理那个生成的压缩视频,你会发现你的app的空间占用量是很大的。

站在大牛的肩膀上开发。

❹ iphone的文件连接服务器支持ftp吗

支持。

一、确保iPhone可以连接到互联网,不管是通过4G/5G或者是WIFI。二、iPhone使用Vρ∩功能已经拨入到 PacketiX Vρ∩(派克斯Vρ∩)搭建的服务器上。使iPad和需要访问的FTP服务器在同一个局域网中。

【iPhone自带的Vρ∩功能可以无障碍的拨入PacketiX Vρ∩搭建的Vρ∩网络中,具体的方法请搜索官方网站】三、接下来介绍如何搭建Windows的FTP服务器。

1、这里以Windows Server 2003为例来介绍,FTP服务是Windows系统的一个组件,安装的时候需要Windows Server 2003的系统安装光盘。

点击开始→设置→控制面板→添加或删除程序→添加删除Windows组件→应用程序服务器 →Internet信息服务(IIS)→“文件传输(FTP)服务”打钩→点击“确定”。

2、安装完成以后,查看电脑中多了C:Inetpubftproot目录搭旅隐,此时不需要做任何设置,只要把需要被访问的文件放到此目录下,其他电脑就可以在IE的地址栏里输入FTP://服务器IP地址,来访问此目录内的文件。四、在iPhone里下载并安装FTP 客户端知厅工具FTP On The Go。(此软件可能需要付费)五、安装完成后点击FTP On The Go图标进入FTP On The Go客户端,在Connect To FTP Server栏中输入Windows FTP服务器的局域网IP地址,然后点击Connect。就可连接上WindowsFTP服务器,并显示出服务器内的文件目镇悄录。

1、选中想要的文件,点击下面的“下载”图标,即可把文件下载到iPhone上。

2、点击Saved Files,这里出现的文件就是通过FTP工具下载到iPhone的文件。如果是文本文档,即可打开或编辑。

❺ 苹果手机可以用FTP吗

所有手机在建造的时候都具备FTP功能,包括苹果手机。

FTP的中文简称为文传协议,用于Internet上的控制文件的双向传输。同时,它也是一个应用程序,基于不同的操作系统和碧有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在FTP的使用当中,用户经常遇到两个概念,分别为下载和上传,下载文件就是从远程主机拷唤昌举贝文件至自己的计算机上迅凯,上传文件就是将文件从自己的计算机中拷贝至远程主机上。

❻ 如何通过ftp将比较大的文件传输给别人

比较麻烦,速度也不快。
用QQ文件中转站好了,单个文件支持1G
你把文件传到那后,可以直轿姿接发送邮件给他,邮饥码件里包含的是文件的下载地址,所以不会受附件大小影响。去烂帆哪QQ邮箱看看吧

❼ 在苹果电脑中怎样往FTP服务器中上传文件

操作是很简单的。
第一种方法是用Finder,点击屏幕顶端菜单栏中的Go,在下拉菜单中选择连接到服务器,接着在对话框里输入FTP地址、用户名、密码,登陆后,Finder便会出现FTP的盘符,将你的文件拖进取就可以了,好象使用U盘一样。不过Finder速度比较慢。
第二种方法,使用FTP上传软件,这里推荐Transmit,点击http://www.panic.com/transmit/可下载。

热点内容
ip和服务器有关吗 发布:2025-02-09 12:51:26 浏览:949
极光免费脚本 发布:2025-02-09 12:50:33 浏览:393
c存储过程返回结果集 发布:2025-02-09 12:42:00 浏览:149
gs哪个配置性价比高 发布:2025-02-09 12:35:57 浏览:282
java栈数组 发布:2025-02-09 12:33:37 浏览:555
php上传文件form 发布:2025-02-09 12:33:31 浏览:156
冠道如何选择配置 发布:2025-02-09 12:20:21 浏览:970
为什么安卓手机wearpro搜不到手表 发布:2025-02-09 12:16:07 浏览:670
服务器安全怎么做 发布:2025-02-09 12:08:08 浏览:484
传奇编译完整部署教程 发布:2025-02-09 12:03:39 浏览:830