三大视频网站Url的处理保存(视频和图片二选一操作)

本文介绍了一种前台JavaScript处理视频链接的方法,包括不同平台视频链接的格式化及合法性验证,并展示了后台Java代码如何保存这些经过处理的数据到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台Js

// 视频处理
var textVideoLink=$("input[name='textVideoLink']").val();
// 去除所有有的引号和空格
var vk=textVideoLink.replace(/\"/g, "");
// 地址的处理
var reg = RegExp(/allowfullscreen/);
var youku = RegExp(/youku/);
var youkuPostfix = RegExp(/frameborder=0/);
// 编辑时的处理
var vklPrefix="http";
var vklStr=textVideoLink.substr(0,4);

if(textVideoLink!=null && textVideoLink != ""){

if(vk.match(reg) && !vk.match(youku)){
// 爱奇艺和腾讯走以下截取
var textVideoLink=vk.substring(vk.indexOf("http"), vk.lastIndexOf("allowfullscreen"));

}else if(vk.match(youku) && vk.match(youkuPostfix)){
// 优酷视频地址走一下截取
var textVideoLink=vk.substring(vk.indexOf("http"), vk.lastIndexOf("frameborder=0"));

}else if(vklPrefix==vklStr){
// 编辑回显状态时输入框的url
var textVideoLink=textVideoLink.replace(/\"/g, "");
}else{
bootbox.alert({
size: "small",
title: "错误",
message: "输入的视频地址格式有误"
});
return;
}
}else{
// 发生在变更时 将视频转图片的情况下
alert("测试");
}



// 视频和主图的添加的判断
var textPicture = $('input[name=textPicture]').val().trim();

if (textVideoLink == null || textVideoLink == "") {
if (textPicture != "") {
// 添加图片
data.textPicture = textPicture;
} else {
bootbox.alert({
size: "small",
title: "错误",
message: "请至少上传一张图片或一个视频地址"
});
return;
}
} else if ((textVideoLink != "" || textVideoLink != null) && textPicture != "") {

bootbox.alert({
size: "small",
title: "错误",
message: "图片和视频只能二选一"
});
return;

}else if(textVideoLink != "" && vklStr==vklPrefix && textPicture=="") {
// 编辑时 会显的是 http开头的地址
data.textVideoLink=textVideoLink;

}else if(textVideoLink != "" && (textPicture != "" || textPicture != null)){
// 新增时 视频url 添加
data.textVideoLink=textVideoLink;
}

 

 

 

后台Java代码的保存

 

/ 新增微信推荐文章信息
@Override
@Transactional
public BaseOutDTO addWxText( WxDiscoverText wxDiscoverText) {
BaseOutDTO baseOutDTO = new BaseOutDTO();
int i;
Date date = new Date();
if (wxDiscoverText.getTextId()==null){
if(wxDiscoverText.getTextVideoLink()!=null && wxDiscoverText.getTextVideoLink()!=""){
String vk = wxDiscoverText.getTextVideoLink();
wxDiscoverText.setTextVideoLink(vk);
}
// 删除状态默认未删除
wxDiscoverText.setIsDelete((byte) 0);
// 创建时文章浏览量默认为0
wxDiscoverText.setReadCount(0L);
// 默认排序为0
wxDiscoverText.setSort(0);
wxDiscoverText.setTextCreateTime(date);
i = wxDiscoverTextMapper.insertSelect(wxDiscoverText);
} else if(wxDiscoverText.getTextId()!=null && wxDiscoverText.getTextVideoLink()!=null ){
String vk = wxDiscoverText.getTextVideoLink();
wxDiscoverText.setTextVideoLink(vk);
wxDiscoverText.setTextUpdateTime(date);
wxDiscoverText.setIsShow((byte)1);
i = wxDiscoverTextMapper.updateTextByPrimaryKeyService(wxDiscoverText);
}else if(wxDiscoverText.getTextId()!=null && wxDiscoverText.getTextVideoLink()==null && wxDiscoverText.getTextPicture()!=null){
wxDiscoverText.setTextVideoLink("");
wxDiscoverText.setTextUpdateTime(date);
wxDiscoverText.setIsShow((byte)1);
i = wxDiscoverTextMapper.updateTextByPrimaryKeyService(wxDiscoverText);
}else {
wxDiscoverText.setTextUpdateTime(date);
wxDiscoverText.setIsShow((byte)1);
i = wxDiscoverTextMapper.updateTextByPrimaryKeyService(wxDiscoverText);
}

if (i==1){
baseOutDTO.setErrorCode(Rescode.SUCCESS);
}else {
baseOutDTO.setErrorCode(Rescode.FAIL);
}
return baseOutDTO;
}

转载于:https://www.cnblogs.com/jabez1992/p/9376538.html

### 如何在iOS设备上将相册中的视频保存到本地存储 为了实现从相册中取并保存视频至应用程序沙盒环境下的文件系统,可以利用`UIImagePickerController`来获取用户择的媒体资源,并通过`AVAssetExportSession`导出所视频。下面是个完整的Swift代码示例[^1]: ```swift import UIKit import MobileCoreServices import AVFoundation class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { func pickVideoFromLibrary() { let pickerController = UIImagePickerController() pickerController.delegate = self pickerController.mediaTypes = [kUTTypeMovie as String] pickerController.sourceType = .photoLibrary present(pickerController, animated: true, completion: nil) } // MARK: - Image Picker Delegate Methods func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { guard let mediaType = info[UIImagePickerControllerMediaType] as? String, mediaType == (kUTTypeMovie as String), let videoUrl = info[UIImagePickerControllerMediaURL] as? URL else { return } dismiss(animated: true) exportLocally(videoAt: videoUrl) } private func exportLocally(videoAt url: URL) { let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let savedVideoPath = documentsDirectory.appendingPathComponent("saved_video.mp4") try? FileManager.default.removeItem(at: savedVideoPath) do { let asset = AVURLAsset(url: url, options: nil) guard let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality) else { return } exportSession.outputFileType = .mp4 exportSession.outputURL = savedVideoPath exportSession.exportAsynchronously(completionHandler: { switch exportSession.status { case .completed: print("Successfully exported video to \(savedVideoPath)") default: print("Failed with error \(exportSession.error?.localizedDescription ?? "")") } }) } catch { print(error.localizedDescription) } } } ``` 此段代码展示了如何创建个视图控制器类继承自UIViewController以及实现了两个协议——`UIImagePickerControllerDelegate` `UINavigationControllerDelegate`以便处理图片浏览器的择事件。 当调用`pickVideoFromLibrary()`方法时会弹出照片库供用户挑想要操作的影片;择了特定项目,则触发代理回调函数,在其中验证返回的数据是否为预期类型的电影文件(`kUTTypeMovie`)及其对应的URL地址是否存在。如果切正常的话就继续执行下步骤即调用私有辅助函数`exportLocally(videoAt:)`来进行实际的复制过程。 该辅助功能负责准备目标路径(位于应用文档目录下),删除任何已存在的同名旧版本以防冲突,接着实例化个新的`AVAssetExportSession`对象用于转换源素材格式为目标MP4编码最后异步启动整个流程直至完成或失败都会给出相应提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值